#include #include #include #include #include #include #define CUSTOMER_NUM 10 pthread_mutex_t mutex_x= PTHREAD_MUTEX_INITIALIZER; sem_t sem; int sem_v... ...
分类:
编程语言 时间:
2017-03-17 19:25:33
阅读次数:
190
5.6 死锁 (1)死锁:两个线程试图同时占用两个资源,并按不同的次序锁定相应的共享资源。 (2)解决方案: ①方案1:按相同的次序锁定相应的共享资源 ②方案2:使用pthread_mutex_trylock(),它是pthread_mutex_lock()函数的非阻塞版。 【编程实验】死锁 //d ...
分类:
编程语言 时间:
2017-02-22 00:04:47
阅读次数:
284
#include <pthread.h> pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;int pthread_mutex_init (pthread_mutex_t *mutex , pthread_mutexattr_t * attr );i ...
在mips交叉编译时,设置互斥锁时,报以下错误,始终编译不过去。error:‘PTHREAD_MUTEX_ERRORCHECK_NP‘wasnotdeclaredinthisscope各种百度,相关信息一条也没有找到,实在没办法了,各种尝试。打开linux平台和mips平台的pthread.h一对比才恍然大悟,原来在mips平台上,互斥锁类..
分类:
其他好文 时间:
2016-11-29 00:09:30
阅读次数:
171
pthread_mutex_lock pthread_mutex_lock pthread_mutex_lock(pthread_mutex_t *mutex); int pthread_mutex_trylock(pthread_mutex_t *mutex); int pthread_mutex ...
分类:
其他好文 时间:
2016-11-25 12:11:44
阅读次数:
120
(1)创建线程函数: pthread_create(); (2)阻塞等待线程结束并回收资源函数: pthread_join(); (3)线程退出函数:pthread_exit(); (4)线程互斥锁: 初始化 pthread_mutex_init(); 上锁 pthread_mutex_lock() ...
分类:
编程语言 时间:
2016-11-14 20:33:05
阅读次数:
193
记录一下学习线程池的过程,代码用到的函数归结: pthread_mutex_lock pthread_mutex_unlock pthread_cond_wait pthread_cond_signal pthread_cond_broadcast pthread_create pthread_jo ...
分类:
编程语言 时间:
2016-11-08 16:40:01
阅读次数:
332
一、解决问题和适用范围 主要是用来等待一个条件,这个条件可能需要另一个线程来满足这个条件。这个和我们平常适用的pthread_mutex_lock的最大不同在于后者保护的一般是一个代码段(也就是关键区),或者一个变量,但是由于一般来说这个变量的访问是在一个关键区中,所以可以认为是一个关键区。 但是对 ...
分类:
其他好文 时间:
2016-09-08 18:31:17
阅读次数:
199
为了保证临界资源的安全性和可靠性,线程不得不使用锁,同一时间只允许一个或几个线程访问变量。常用的锁有互斥量,读写锁,条件变量 一、互斥量 互斥量是用pthread_mutex_t数据类型表示的,在使用之前,必须对其进行初始化,可以把它设置为PTHREAD_MUTEX_INITIALIZER(只适于静 ...
分类:
编程语言 时间:
2016-08-17 08:58:14
阅读次数:
255
本文重点讨论到底什么是runloopmode及业务逻辑。 CFRunLoop 结构如下: struct __CFRunLoop { CFRuntimeBase _base; pthread_mutex_t _lock; /* locked for accessing mode list */ __C ...
分类:
其他好文 时间:
2016-08-02 20:48:40
阅读次数:
200