多线程

参考:http://blog.youkuaiyun.com/morewindows/article/details/7392749

参考:http://blog.youkuaiyun.com/betabin/article/details/7533634

因为记性不好,总是忘记。记在本子上,一会就忘记记在那个地方了。所以转战blog.

多线程

多线程编程主要是为了程序的并发执行。理解多线程编程主要理解两个概念:同步互斥

同步:同步就是线程等待某个条件成熟再执行。比如A线程等待B线程执行完了才能执行。

注:网上的解释:线程协作(直接相互制约)

一个线程必须等另一线程完成某个操作后才能继续。

互斥:互斥表示获得某个资源后排斥别的线程修改它。

注:网上的解释:资源共享(间接相互制约),同一时刻仅有一个线程使用资源,

是一种特殊的同步


常用的线程同步互斥机制:

关键段:

只能用于互斥。

因为线程成功等待之后把所有权交给了线程,拥有所有权之后线程就肆无忌惮了,直到线程释放它。

如: 儿子在等爸爸的苹果,关键段和互斥量等的是苹果本身,完了之后拥有了苹果,释放时把苹果(吃剩的也要放回去)放回去了;而事件和信号量等的是苹果放在盘子里的事件,等到了就拿走吃掉然后触发盘子空的事件让爸爸再放苹果。

互斥量:Mutex

只能用于互斥。互斥量能很好的处理“遗弃”情况,因此在多进程之间可以放心的使用。

事件:Event

可用于同步。但是只能触发一个盘子的事件,如果爸爸放水果在两个盘子里,就不适用了。

信号量:Semaphore

用于同步。可以触发多个相同盘子的事件,如果爸爸放水果在两个盘子里,会触发两次等待。因为它有计数,如果计数大于一,就会触发等待。


函数说明:详见第一个参考网址。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值