Archives

帖子来自 zhongguo RSS

linux 多线程编程 之 信号量互斥同步

作者: zhongguo (1 篇文章) 日期: 十二月 2, 2011 在 5:10 下午
评论 (0)

  本文在上一篇的基础上进一步说明,Linux下多线程编程的互斥与同步。上一篇实现线程之间同步采用了互斥锁,同步采用条件变量,本文将说明如何使用信号量实现线程之间的互斥与同步。互斥锁只有0,1两中状态,适合于线程对共享资源的独占访问,很多时候每个资源可以同时被有限的线程访问,此时互斥锁将无法满足;条件变量同步也同样存在这种问题。信号量实际是一种非负整型计数器,可以很好的控制线程之间资源访问,互斥锁能实现的功能,信号量同样可以。 信号量控制资源共享主要是PV原语操作, PV原语是对整数计数器信号量sem的操作。一次 P操作使 sem减一,而一次 V操作使sem 加一。进程(或线程)根据信号量的值来判断是否对公共资源具有访问权限。当信号量sem 的值大于等于零时,该进程(或线程)具有公共资源的访问权限;相反,当信号量 sem的值小于零时,该进程(或线程)就将阻塞直到信号量 sem的值大于等于 0 ...

继续 ›

分类: 博客征文专栏, 开放源代码, 移动技术