06 2013 档案

摘要:有数据交互的进程之间的关系主要有两种,同步与互斥.所谓互斥,是指在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行.所谓同步,是指在不同进程之间的若干程序片断,它们的运行必须严格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务.很显然,同步是一种更为复杂的互斥,而互斥是一种特殊的同步.也就是说互斥是两个线程之间不可以同时运行某个代码片段,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行;而同步也是不能同时运行的,同时它还要必须要安照某种次序来运行相应的线程(也是一种互斥 阅读全文
posted @ 2013-06-19 11:07 一线天 阅读(754) 评论(0) 推荐(0) 编辑
摘要:在linux下进行c++编写多线程程序时,基本上都会涉及到同步与互斥的情况.首先来说下互斥.比如说多个线程都需要对同一个变量X进行操作,但是在线程A对X进行操作时,如果线程B,C,D...也来同时进行,这就乱套了,都不知道是谁操作的结果.所有我们需要给这个变量加一把锁,等某一个线程操作完了,下一个线程才能进行操作.也就是说各个线程对X的操作是互斥的.接下来说说条件变量.比如我要等待变量X达到某一条件值(比如X>10),这时我才进行相关的处理.这时候,我就有可能需要时时刻刻都要关心这个条件是否成立,这有可能就需要不停的进入临界区查看条件是否成立,这样频繁的消耗CPU.而且每次进入临界区,别 阅读全文
posted @ 2013-06-19 10:55 一线天 阅读(330) 评论(0) 推荐(0) 编辑