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)

  • 相关阅读:
    JVM(5)之 GC之标记
    JVM(4)之 使用MAT排查堆溢出
    JVM(3) 之 内存分配与回收策略
    JVM(2)之 JAVA堆
    JVM(1)之 JAVA栈
    MySQL查询时报错Illegal mix of collations
    struts2 基础学习
    python3.4 + pycharm安装与使用
    Pycharm激活
    IntelliJ IDEA 2018.2激活
  • 原文地址:https://www.cnblogs.com/candycloud/p/3687380.html
Copyright © 2011-2022 走看看