多线程
文章平均质量分 85
qq_20853741
这个作者很懒,什么都没留下…
展开
-
pthread_cond_wait
为什么pthread_cond_wait需要互斥锁mutex作为参数通常的应用场景下,当前线程执行pthread_cond_wait时,一定是处于某个临界区,正在访问共享资源,存在一个mutex与该临界区相关联。因此,在阻塞前,必须释放mutex;被唤醒后,仍然处于临界区,因此需要再次获得mutex。目录为什么是pthread_cond_wait(cond, mutex)而不是pthread_cond_wait(cond)生产者和消费者问题的介绍用于同步和互斥的全局变量使用pthread..原创 2021-11-03 22:10:10 · 2388 阅读 · 0 评论 -
线程基础01
第1章多线程1.1多线程介绍学习多线程之前,我们先要了解几个关于多线程有关的概念。进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程什么是多线程呢?即就是...原创 2021-07-01 20:57:32 · 53 阅读 · 1 评论 -
linux线程间的通信(pthread_cleanup_push和pthread_cleanup_pop)
linux高级编程之线程间的通信(pthread_cleanup_push和pthread_cleanup_pop) 线程可以安排他退出时需要调用的函数,这与进程可以用atexit函数安排进程退出时需要调用的函数是类似的。这样的函数称为线程清理处理程序,线程可以建立多个清理处理程序。处理程序记录在栈中,也就是说他们的执行顺序与他们注册的顺序相反。 pthread_cleanup_push和pthread_cleanup_pop函数原型如下: 头文件:#...原创 2020-12-01 20:06:10 · 187 阅读 · 0 评论 -
多线程同步--互斥锁+条件变量
多线程同步--互斥锁+条件变量1 互斥量定义互斥量用来确保一个线程独占一个资源的访问。互斥量是一个内核对象。互斥量与临界区非常相似,并且互斥量可以用于不同进程中的线程互斥访问。2 互斥量2.1 互斥量接口(linux)2.1.1 pthread_mutex_t mutex//创建一个互斥对象2.1.2 pthread_mutex_init//初始化一个互斥锁;原型:int pthread_mutex_init(pthread_mutex_t *mutex,const pthread原创 2020-11-30 21:17:37 · 248 阅读 · 0 评论 -
条件变量互斥量与结合使用
互斥量与条件变量(三步走战略)结合使用原理pthread_cond_wait总和一个互斥锁结合使用。在调用pthread_cond_wait前要先获取锁。pthread_cond_wait函数执行时先自动释放指定的锁,然后等待条件变量的变化。在函数调用返回之前,自动将指定的互斥量重新锁住。int pthread_cond_signal(pthread_cond_t * cond);pthread_cond_signal通过条件变量cond发送消息,若多个消息在等待,它只唤醒一个。pthread_co原创 2020-11-23 16:58:14 · 212 阅读 · 0 评论