- 博客(23)
- 资源 (3)
- 收藏
- 关注
转载 线程同步的几种方式
进程中线程同步的四种常用方式:1、 临界区(CCriticalSection)当多个线程访问一个独占性共享资源时,可以使用临界区对象。拥有临界区的线程可以访问被保护起来的资源或代码段,其他线程若想访问,则被挂起,直到拥有临界区的线程放弃临界区为止。具体应用方式:1、 定义临界区对象CcriticalSection g_CriticalSection;2、 在访问共享
2016-09-26 15:29:48 360
转载 线程同步和死锁
前天俺们谈到了加锁(线程同步),但是在使用加锁的同时又会带来一个问题,就是死锁。什么叫死锁?所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。发生死锁的原因一般是两个对象的锁相互等待造成的。那么为什么会产生死锁呢?1.因为系统资源不足。2.进程运行推进的顺序不合适。 3.资源分配不当
2016-09-26 12:59:50 424
转载 进程间通信的几种方式
进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义
2016-09-26 12:03:05 429
转载 osi模型
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。完成中继功能的节点通常称为中继系统。在OSI七层模型中,处于不同层的中继系统具有不同的名称。 一个设备工作在哪一层,关键看它工作时利用哪一层的数据头部信息。网桥工作时,是以MAC头部来决定转发端口的,因此显然它是数据链路层的设备。
2016-09-26 11:56:25 566
转载 c++多线程
《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现,《编程思想之多线程与多进程(2)——线程优先级与线程安全》一文讲了线程安全(各种同步锁)和优先级,这是多线程学习必须了解的基础。本文将接着讲一下C++中多线程程序的开发.这里主要讲Windows平台线程的用法,创建线程要调用windows API的CreateThread方法
2016-09-21 20:40:01 572
转载 二叉树遍历
二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对
2016-09-21 20:17:48 234
转载 操作系统调度方法
在操作系统中存在多种调度算法,其中有的调度算法适用于作业调度,有的调度算法适用于进程调度,有的调度算法两者都适用。下面介绍几种常用的调度算法。先来先服务(FCFS)调度算法FCFS调度算法是一种最简单的调度算法,该调度算法既可以用于作业调度也可以用于进程调度。在作业调度中,算法每次从后备作业队列中选择最先进入该队列的一个或几个作业,将它们调入内存,分配必要的资源,创建进程并放入就绪队列
2016-09-19 21:26:44 1538
转载 进程状态
三态模型:在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化。进程一般有3种基本状态:运行、就绪和阻塞。(1)运行:当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。(2)就绪:当一个进程获得了除处
2016-09-19 21:25:34 323
转载 list
双向链表,不支持随机访问,在任意位置插入和删除元素时间固定http://www.cnblogs.com/scandy-yuan/archive/2013/01/08/2851324.html构造函数 list c0; //空链表 list c1(3); //建一个含三个默认值是0的元素的链表 list c2(5,2); //建一个含五个元素的链表,
2016-09-14 22:16:55 278
原创 STL
STL标准模板库泛型编程(genericprogramming):编写独立于数据类型的代码容器:类似数组,同质vector动态内存分配#include using namespace std;Vector成员函数函数表述c.assign(beg,end)c.assign(n,elem)将[beg
2016-09-14 21:19:24 257
转载 智能指针
智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。有三种类型:auto_ptr,unique_ptr,shared_ptr.使用方法:#include using namespace std;void demo(string &str){auto_ptr p(new strin
2016-09-14 20:33:47 209
原创 WPF自定义控件
using System.Windows;using System.Windows.Controls;using System.Windows.Media;namespace ZJWMSUI.Controls{ public class DazzleButton : Button { public static readonly DependencyPro
2016-09-11 11:09:38 396
原创 WPF数据类型转换
using System;using System.Windows.Data;namespace ZJWMS{ class BoolToNum : IValueConverter { #region IValueConverter 成员 public object Convert(object value, Type targetType,
2016-09-11 10:36:30 2464
原创 SQLServer2008语句查询
1 判断数据库是否存在if exists (select * from sys.databases where name = '数据库名') drop database [数据库名] 2 判断表是否存在if exists (select * from sysobjects where id = object_id('表名') and OBJECTPROPERTY(id,
2016-09-11 10:04:08 1258
原创 c#连接SQLSever2008
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword; Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myU
2016-09-11 09:41:13 426
原创 SQLServer 2008 触发器
获得实时信息后,触发插入当日的最大最小值1)打开数据库,打开表-触发器-新建触发器2)编程USE [lpp]GO/****** Object: Trigger [dbo].[Trigger_Building_His] Script Date: 09/10/2016 12:00:23 ******/SET ANSI_NULLS ONGOSET QUOTED_IDEN
2016-09-10 12:02:00 386
原创 SQLSever2008 创建视图
1)打开数据库,点击视图-新建视图;2)我这里没有和其他表关联,等到用到和其他表关联的时候我再补充。 这个视图产生一个随机数,弹出的小窗口直接关闭,SELECT rand() AS getRandData,执行一下就可以看到视图的结构已经变了,然后保存视图的名字。
2016-09-10 09:24:55 520
原创 SQLServer2008 标量函数
1)首先点击数据库-可编程行-标量函数,右键新建标量值函数2)开始写函数USE [lpp]GO/****** Object: UserDefinedFunction [dbo].[Rand2Valid] Script Date: 09/10/2016 09:19:34 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ON
2016-09-10 09:21:30 906
转载 SQLServer2008触发器
触发器(trigger):是一种特殊的存储过程,可以用来对表实施复杂的完整性约束,保持数据的一致性。当触发器所保护的数据发生改变时,触发器会自动被激活,并执行触发器中所定义的相关操作,从而保证对数据的不完整性约束或不正确的修改。 在SQL SERVER 2008中,有三种类型的触发器:(1)DML触发器:是指触发器在数据库中发生数据操作语言(DML)事件时将启用。DML事件即指在
2016-09-09 16:11:48 804
转载 SQLServer2008定时作业
--SQL Server 2008 定时作业的制定--1.打开【SQL Server Management Studio】,在【对象资源管理器】列表中选择【SQL Server 代理】;--2.鼠标右击【SQL Server 代理】,选择【启动(S)】,如已启动,可以省略此步骤;--3.展开【SQL Server 代理】列表,右击【作业】-->【新建作业】;--3.1 在【常规】
2016-09-09 11:13:44 691
原创 SQLServer其他
SET QUOTED_IDENTIFIER ONSQL SERVER的联机丛书的解释:“当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔。当 SET QUOTED_IDENTIFIER 为 OFF 时,标识符不可加引号,且必须遵守所有 Transact-SQL 标识符规则。”先说说什么是标识符,举个例子,如果创
2016-09-09 10:43:07 212
原创 SQLSever
1)开启SQLServer服务,计算机-管理-服务2)数据库删除,右键删除;数据库添加,数据库右键附加,附加.mdf文件, 附加数据库失败,更改.mdf文件和.ldf文件的读写权限,方法:.mdf文件右键属性-安全-用户名3)数据库插入数据USE [ZJWMS]GO/****** Object: StoredProcedure [dbo].[sp_Ins
2016-09-09 09:13:30 369
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人