注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Mihooke's blog

IT之恋

 
 
 

日志

 
 

多线程同步方式  

2016-04-23 18:36:26|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
线程同步是线程之间所具有的一种制约关系,一个线程的执行依赖于另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。
线程互斥是对于共享的进程系统资源,在各单个线程访问时的排他性。当有若干个线程都要访问某一共享资源时,任何时刻最多只允许一个线程去访问,其他的线程必须要等待,直到释放资源。

  • 临界区,当多个线程访问一个独占性共享资源时,就可以使用临界区对象,在临界区内的线程可以访问被保护起来的资源或代码,其他线程若要访问,则被挂起,直到临界区的线程放弃临界区为止。可以实现线程互斥,不能实现线程同步。
  • 事件,事件允许一个线程处理完一个任务后,主动去唤醒另外一个线程执行任务。每个事件对象都有有信号状态和无信号状态两种状态
  • 互斥量,它和临界区相似,只有加了互斥的对象才具有访问资源的权限,但是比临界区复杂,因为互斥不仅仅能在同一进程的不同线程之间,而且可以在不同进程的各个线程之间来实现对资源的安全共享。
  • 信号量,信号量允许多个线程访问共享资源,但是指出了同时访问的最大数目。可以用计数器来统计访问量,有线程访问,则可用资源数减1,有线程释放(可以被任何一个线程释放),则加1,若为0了,则发信号量信号。
  评论这张
 
阅读(16)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017