![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux多线程
ywy2090
这个作者很懒,什么都没留下…
展开
-
关于pthread_cond_wait使用while循环判断的理解
在Stevens的《Unix 环境高级编程》中第11章线程关于pthread_cond_wait的介绍中有一个生产者-消费者的例子P311,在进入pthread_cond_wait前使用while进行条件判断,而没有直接使用if,耐人费解!#include struct msg { struct msg *m_next; /* value...*/}; struct m转载 2013-10-29 18:21:34 · 2189 阅读 · 3 评论 -
线程安全与可重入函数
本文主要转csapp[深入理解计算机系统]第1版13.7.1。线程安全:一个函数被称为线程安全的(thread-safe),当且仅当被多个并发进程反复调用时,它会一直产生正确的结果。如果一个函数不是线程安全的,我们就说它是线程不安全的(thread-unsafe)。我们定义四类(有相交的)线程不安全函数。第1类:不保护共享变量的函数将这类线程不安全函数变为线程安全的,相对比转载 2016-03-05 10:26:13 · 671 阅读 · 0 评论 -
互斥锁与自旋锁
自旋锁是一种非阻塞锁,也就是说,如果某线程需要获取自旋锁,但该锁已经被其他线程占用时,该线程不会被挂起,而是在不断的消耗CPU的时间,不停的试图获取自旋锁。互斥量是阻塞锁,当某线程无法获取互斥量时,该线程会被直接挂起,该线程不再消耗CPU时间,当其他线程释放互斥量后,操作系统会激活那个被挂起的线程,让其投入运行。两种锁适用于不同场景:如果是多核处理器,如果预计线程等待锁的时转载 2016-03-15 09:19:48 · 450 阅读 · 0 评论