摘要: 信号量是最早出现的用来解决进程同步与互斥问题的机制(也可实现进程通信),包括一个称为信号量的变量及对它进行的两个原语操作。信号量为一个整数,我们设这个信号量为:sem。很显然,我们规定在sem大于等于零的时候代表可供并发进程使用的资源实体数,sem小于零的时候,表示正在等待使用临界区的进程的个数。根据这个原则,在给信号量附初值的时候,我们显然就要设初值大于零。p操作和v操作是不可中断的程序段,称为原语。P,V原语中P是荷兰语的Passeren,相当于英文的pass, V是荷兰语的Verhoog,相当于英文中的incremnet。且在P,V愿语执行期间不允许有中断的发生。首先应弄清PV操作的.. 阅读全文
posted @ 2013-06-19 18:53 iyjhabc 阅读(2228) 评论(0) 推荐(0) 编辑
摘要: 互斥锁: 互斥锁是一种保护机制。上锁后其他线程不能进入保护区域的代码,直到锁被释放。信号量: 信号量是一种同步机制。信号量的值代表可用的资源数目,当值大于0代表有可用资源,则允许继续操作,否则线程阻塞,等待可用资源。当可用资源是1时,信号量与互斥锁基本没区别,都起保护作用。当资源数大于1,则当信号量大于0时线程都可进行操作。如果资源大于1时使用互斥锁,则就算资源数大于1时,也只能有一个线程进入操作,其余线程必须阻塞。信号量可用于进程通信和线程通信,而互斥锁只能用于线程通信。 阅读全文
posted @ 2013-06-19 17:04 iyjhabc 阅读(424) 评论(0) 推荐(0) 编辑