Chinaunix首页 | 论坛 | 博客
  • 博客访问: 32219
  • 博文数量: 5
  • 博客积分: 141
  • 博客等级: 入伍新兵
  • 技术积分: 60
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-11 08:16
文章分类
文章存档

2012年(1)

2011年(4)

我的朋友

分类: LINUX

2012-10-07 08:51:54

linux系统下,线程之间保护临界区时,若占用时间较短,则可以使用锁机制。

用法如下:

1. 初始化

   (1)pthread_mutex_t lock;//动态初始化

        pthread_mutex_init(&lock, NULL);

   (2)pthread_mutex_t mymutex=PTHREAD_MUTEX_INITIALIZER;//静态初始化

2. 加锁过程:

    pthread_mutex_lock(&lock)

3. 解锁过程:

   pthread_mutex_unlock(&lock);

4. 注销(适用于动态初始化的锁)

  pthread_mutex_destroy(&lock);

----------------------------------------------------------------------

有些情况下,需要保持线程的同步,可在加锁的基础上,使用信号机制。

1. 初始化

   (1)静态初始化

      pthread_cond_t cond=PTHREAD_COND_INITIALIZER;

   (2)动态初始化

      pthread_cond_t cond;

      pthread_cond_init(&cond, NULL);

2. 进入等待状态,且释放锁

     pthread_cond_wait(&cond); //此时,锁已经释放,该语句需在pthread_mutex_lock()与pthread_mutex_unlock()之间使用

3. 发送信号

    pthread_cond_signal(&cond);//需同时释放锁。

4. 注销

   pthread_cond_destroy(&cond);

阅读(1206) | 评论(0) | 转发(0) |
0

上一篇:snort网络入侵检测系统源代码分析(一)

下一篇:没有了

给主人留下些什么吧!~~