Chinaunix首页 | 论坛 | 博客
  • 博客访问: 31097
  • 博文数量: 19
  • 博客积分: 665
  • 博客等级: 上士
  • 技术积分: 195
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-23 23:11
文章分类

全部博文(19)

文章存档

2014年(1)

2012年(2)

2011年(1)

2010年(12)

2009年(3)

我的朋友

分类: LINUX

2012-03-10 12:43:03

互斥锁和信号量都是针对多线程编程线程间同步的技术工具。
互斥锁的功能:被互斥锁锁住的任意代码段,在同一时间只能有一个在运行。

例如:
//-----------------------
pthread_mutex_lock()
代码段A
pthread_mutex_unlock()
//-----------------------

//-----------------------
pthread_mutex_lock()
代码段B
pthread_mutex_unlock()
//-----------------------

//-----------------------
pthread_mutex_lock()
代码段C
pthread_mutex_unlock()
//-----------------------

代码段A,B,C在同一个时间内,只能有一个在执行。



信号量的功能:动作之间的同步,可以在多个线程的无序运行中达到部分核心动作的序列执行。

例如:
//-----------------------
sem_wait()
代码段A
//-----------------------

//-----------------------
代码段B
sem_post()
//-----------------------

执行顺序:代码段B, 代码段A



阅读(506) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~