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)

  • 相关阅读:
    SharePoint Designer
    SharePoint Tricks
    树型dp(2019/1/19学习笔记) by csy
    2019/2/21测试(noip2015提高组day2
    loj刷题记录2019/2/20
    2019/2/16测试
    splay(水题)
    noip2016提高组day2
    2019/2/13测试(noip2016提高组day1原题)
    洛谷p1083借教室
  • 原文地址:https://www.cnblogs.com/candycloud/p/3687380.html
Copyright © 2011-2022 走看看