互斥锁
int pthread_mutex_init(pthread_mutex_t *restrict, const pthread_mutexattr_t *restrict);
int pthread_mutex_destroy(pthread_mutex_t *);
int pthread_mutex_lock(pthread_mutex_t *);
int pthread_mutex_trylock(pthread_mutex_t *);
int pthread_mutex_unlock(pthread_mutex_t *);

读写锁
int pthread_rwlock_init(pthread_rwlock_t *restrict, const pthread_rwlockattr_t *restrict);
int pthread_rwlock_destroy(pthread_rwlock_t *);
int pthread_rwlock_rdlock(pthread_rwlock_t *);
int pthread_rwlock_wrlock(pthread_rwlock_t *);
int pthread_rwlock_tryrdlock(pthread_rwlock_t *);
int pthread_rwlock_trywrlock(pthread_rwlock_t *);
int pthread_rwlock_unlock(pthread_rwlock_t *);

条件变量
int pthread_cond_init(pthread_cond_t *restrict, const pthread_condattr_t *restrict);
int pthread_cond_destroy(pthread_cond_t *);
int pthread_cond_wait(pthread_cond_t *restrict, pthread_mutex_t *restrict);
int pthread_cond_signal(pthread_cond_t *);
int pthread_cond_broadcast(pthread_cond_t *);

自旋锁
int pthread_spin_init(pthread_spinlock_t *, int);
int pthread_spin_destroy(pthread_spinlock_t *);
int pthread_spin_lock(pthread_spinlock_t *);
int pthread_spin_trylock(pthread_spinlock_t *);
int pthread_spin_unlock(pthread_spinlock_t *);

屏障
int pthread_barrier_init(pthread_barrier_t *restrict, const pthread_barrierattr_t *restrict, unsigned);
int pthread_barrier_destroy(pthread_barrier_t *);
int pthread_barrier_wait(pthread_barrier_t *);

信号量
int sem_init(sem_t *, int, unsigned);
int sem_destroy(sem_t *);
int sem_wait(sem_t *);
int sem_trywait(sem_t *);
int sem_post(sem_t *);

多线程编程之线程同步主要函数一览相关推荐

  1. Win32多线程编程(3) — 线程同步与通信

    一.线程间数据通信 系统从进程的地址空间中分配内存给线程栈使用.新线程与创建它的线程在相同的进程上下文中运行.因此,新线程可以访问进程内核对象的所有句柄.进程中的所有内存以及同一个进程中其他所有线程的 ...

  2. 多线程编程、线程同步|安全和线程通信

    多线程编程 多线程的优势 线程在程序中是独立的.并发的执行流,与分隔的进程相比,进程中的线程之间的隔离程度要小.他们共享内存.文件句柄和其他每个进程应有的状态. 因为线程的划分尺度小于进程,使得多线程 ...

  3. iOS多线程编程:线程同步总结 NSCondtion

    1:原子操作 - OSAtomic系列函数 iOS平台下的原子操作函数都以OSAtomic开头,使用时需要包含头文件<libkern/OSBase.h>.不同线程如果通过原子操作函数对同一 ...

  4. java多线程同步与死锁,廖雪峰Java11多线程编程-2线程同步-3死锁

    在多线程编程中,要执行synchronized块,必须首先获得指定对象的锁. 1.Java的线程锁是可重入的锁 public void add(int m){ synchronized (lock){ ...

  5. 【转】1.3异步编程:线程同步基元对象

    开始<异步编程:同步基元对象(上)> 示例:异步编程:线程同步基元对象.rar 如今的应用程序越来越复杂,我们常常需要多线程技术来提高我们应用程序的响应速度.每个线程都由自己的线程ID,当 ...

  6. 多线程编程之三——线程间通讯

    七.线程间通讯 一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信.这种线程间的通信不但是难以避免的,而 ...

  7. 多线程编程(2): 线程的创建、启动、挂起和退出

    python多线程编程(2): 线程的创建.启动.挂起和退出 如上一节,python的threading.Thread类有一个run方法,用于定义线程的功能函数,可以在自己的线程类中覆盖该方法.而创建 ...

  8. Python多线程编程之线程子类化

    Python多线程编程之线程子类化 基本思路 Threading模块简介 **MyThread**主要代码 实例 所有代码 运行结果 基本思路 导入Threading模块下的Thread类,将其子类化 ...

  9. Android SQLite多线程读写和线程同步源码分析

    没啥诀窍,只需保证几个线程都是用的一个SQLiteDataBase对象就行了. 如果我们非要在不同线程中用两个或更多的SQLiteDataBase对象呢,当然这些SQLiteDataBase对象所操作 ...

最新文章

  1. 如何用conda安装软件|处理conda安装工具的动态库问题
  2. PyQt5 笔记3 -- 信号与槽
  3. GDCM:gdcm::ByteSwap的测试程序
  4. html标签强制转换位置,王老师html零基础学习笔记第4课——样式初始化+类型转化...
  5. Servlet使用适配器模式进行增删改查案例(jdbc.properties)
  6. 在Java 7或更早版本中使用Java 8 Lambda表达式
  7. java插入法排序_java如何用插入法对数组排序(GUI窗口实现)
  8. 快速打开计算机磁盘的软件,怎样快速启动电脑
  9. 增广最小二乘法 matlab 东南大学,各种最小二乘法总结(算法+matlab源码)
  10. 【算法】八皇后问题 Python实现
  11. ExtJS视频教程1(上)
  12. 酒店管理系统程序设计
  13. windows系统迁移,C盘搬家
  14. AI数据服务行业进入“认知战争”,云测数据凭什么稳居行业TOP1?
  15. 装X神器--Hacker Typer
  16. css 去除png图片黑色背景色,css的filter给png图片换色
  17. 网络规划设计师复习笔记--网络需求分析
  18. STM32片上外设时钟使能、失能和复位的区别
  19. 手机WIFI拦截器简单实现
  20. UKF-协方差矩阵分解

热门文章

  1. 鸟哥Linux私房菜知识点总结3到5章
  2. 兔子不吃窝边草,跳槽不跳窝边槽。。。
  3. CQOI2019(十二省联考)游记
  4. Grails通过sessionId获取session对象
  5. 将SVN的代码推送到码云的步骤
  6. textarea 高度调整
  7. Zephir入门 —— 语法篇
  8. tomcat 的 start/stop shell script.
  9. Oracle10g中安装Perl环境所产生的冲突
  10. 保护DNS对数字网络安全越来越重要—Vecloud