1、生产者与消费者问题的描述
一个或者多个生产者,一个或者多个消费者。生产者在一条生产线不停地生产产品,消费者们不停地消费产品,需要注意的是
这里的生产线属于临界资源(Critical Source).
当生产线的产品生产满之后,生产者不能再往生产线生产产品,当生产线为空时消费者不能往生产线消费产品。
生产线里面有两个方法,生产和消费,这两个方法都临界区(Criti...
分类:
其他好文 时间:
2014-08-03 18:12:45
阅读次数:
282
生产者消费者问题 这个我就不解释了 应该都dong...
分类:
编程语言 时间:
2014-08-03 15:25:15
阅读次数:
421
critical section Critical Section: 不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。每个进程中访问临界资源的那段代码称为临界区(Critical Section)。 每个进程中访问临界资源的那段程序称为临界区(Critical Sect...
分类:
其他好文 时间:
2014-08-02 15:28:33
阅读次数:
284
1. 概述 条件变量和互斥量是最基本的同步形式,总是用于同步同一个进程的各个线程间同步。 当把条件变量或互斥量放在共享内存区时,可用于进程间同步。 同样的情况还有读写锁,它们都是随进程的持续性。 2.互斥锁 互斥锁指代相互排斥,用于保护临界区。多个线程和多个进程分享的共享数据。 静态初始化:stat...
分类:
其他好文 时间:
2014-08-01 22:49:32
阅读次数:
320
在windows系统中,系统本身为我们提供了很多锁。通过这些锁的使用,一方面可以加强我们对锁的认识,另外一方面可以提高代码的性能和健壮性。常用的锁以下四种:临界区,互斥量,信号量,event。 (1)临界区 临界区是最简单的一种锁。基本的临界区操作有,[cpp] view plaincopyIni....
分类:
编程语言 时间:
2014-08-01 19:16:42
阅读次数:
271
保证在某一时刻只有一个线程对数据进行操作的基本方法:(1)关中断:通过关闭时钟中断来停止线程调度(不现实)(2)数学互斥方法:Peterson算法 bakery算法(3)操作系统提供的互斥方法:临界区、互斥量、信号量等(windows)(4)cpu原子操作:把一些常用的指令设计成了原子指令,在win...
分类:
编程语言 时间:
2014-08-01 19:00:42
阅读次数:
266
线程同步技术:
原子锁
临界区(段)
互斥
事件
信号量(线程示例时已经使用过)
可等候定时器
使用范围:原子锁
效率: 原子锁>临界区(用户态)>互斥(内核态)
一般用临界区。
//等候多个信号
DWORD WaitForMultipleObjects(
DWORD nCount, // number of han...
分类:
编程语言 时间:
2014-07-29 13:14:26
阅读次数:
295
Windows线程 1 Windows线程 Windows进程中可以执行代码的实体,Windows系统可以调度的执行代码.一个进程中至少有一个或多个线程. 每个线程是进程的一个任务分支. 2 线程的特点 2.1 每个线程有一个ID. 2.2 每个线程有自己的安全属性 2.3 每个线程有自己的内存栈. 3 进程和线程多任务 多进程实现的多任务: 由...
分类:
编程语言 时间:
2014-07-27 16:23:15
阅读次数:
404
lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。lock语句根本使用的就是Monitor.Enter和Monitor.Exit,也就是说lock(this)时执行Monitor.Enter(this),大括号结束时执行Monitor.Exit(this).他...
分类:
其他好文 时间:
2014-07-22 00:31:36
阅读次数:
242
临界区Critical Section(CS) 不可跨进程,效率高事件 Event 使用内核对象,可跨进程,用于通知互斥量 Mutex 使用内核对象,可跨进程,用户互斥信号量 Semaphore 使用内核对象,可跨进程,有限数量资源http://blog.csdn.net/column/deta.....
分类:
编程语言 时间:
2014-07-21 09:37:54
阅读次数:
294