• 线程同步


    线程最大的特点就是资源共享,然而资源共享中的同步问题是线程编程的难题。

    三种方法:

    1、互斥锁

    2、条件变量

    3、异步信号

    初始化一个锁

    int pthread_mutex_init(pthread_mutex_t *restrict mutex,  const pthread_mutexattr_t *restrict attr);

    注销一个互斥锁

    int pthread_mutex_destroy(pthread_mutex_t *mutex);

    加锁,如果不成功,阻塞等待

    pthread_mutex_lock(pthread_mutex_t *mutex);

    解锁

    int pthread_mutex_unlock(pthread_mutex_t *mutex);

    测试加锁,如果不成功则立即返回

    int pthread_mutex_trylock(pthread_mutex_t *mutex);

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

    使用互斥锁之前必须初始化,有两种方法可以初始化

    1、调用函数pthread_mutex_init,可以设置锁的属性(普通锁,嵌套锁,检错锁,适应锁)

    2、静态赋值法:将宏结构常量复制给互斥锁

    pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

  • 相关阅读:
    SDOI2008]仪仗队
    洛谷P1414 又是毕业季II
    P3865 【模板】ST表
    [HAOI2007]理想的正方形
    noip 2011 选择客栈
    [AHOI2009]中国象棋
    洛谷P3387 【模板】缩点
    [SCOI2005]最大子矩阵
    [CQOI2009]叶子的染色
    LibreOJ #116. 有源汇有上下界最大流
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/6526745.html
Copyright © 2020-2023  润新知