zoukankan      html  css  js  c++  java
  • pthread_mutex_t pthread_mutex_lock() pthread_ulock() pthread_guard pthread_cond_t wait用法

    pthread_mutex_t //锁的数据类型

    pthread_mutex_lock()//加锁,如果当前其他线程正占用锁,那么阻塞,直到得到锁

    pthread_ulock()//解锁

    pthread_guard//封装成具有作用域特性的锁

    pthread_cond_t wait //条件变量,一般用于多个线程的同步

    pthread_destory()//销毁锁

    案例一:

    初始化:

    pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

    每个要改变公共数据的线程中 :

      some code

      pthread_mutex_lock(mutex)

      do some reading or writing

      pthread_mutex_unlock(mutex)

      some code

    案例2:

    pthread_cond_t  cond = PTHREAD_COND_INITIALIZER

    pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

    bool flag

    线程一:

      some code

      while(1)

        pthread_lock(mutex)

        some code

        pthread_signal(cond)

        some code

        pthread_unlock(mutex)

    线程二:

      while(1)

        pthread_lock(mutex)

        some code

        pthread_cond_wait(cond)

        some code

        pthread_unlock(mutex)

  • 相关阅读:
    类和对象
    数组
    随笔3
    设计把所有的奇数移动到所有偶数前面的算法
    选择排序
    队列的链式存储结构
    循环队列
    一起玩算法(把所有相同的数字后移)
    判断序列B是否是序列A的连续子序列
    power bi创建切片器导航
  • 原文地址:https://www.cnblogs.com/candycloud/p/3687380.html
Copyright © 2011-2022 走看看