- 博客(3)
- 资源 (4)
- 收藏
- 关注
原创 sigsuspend的理解
sigsuspend的核心目标是使进程suspend,那么suspend之后如何唤醒进程,借助的手段是“信号”,进程中”任何“信号的”接收“都会使得suspend醒来,注意此处用的词是”接收“,也即进程信号屏蔽字中的信号投递是不可能唤醒suspend的,那么如果想用这些信号唤醒该怎么办呢,我们可以使用sigsuspend的参数实现,该参数也是信号屏蔽字,只不过该屏蔽字仅仅在sigsuspe
2016-09-14 09:49:53 1935
转载 自旋锁和互斥锁的区别
从 实现原理上来讲,Mutex属于sleep-waiting类型的锁。例如在一个双核的机器上有两个线程(线程A和线程B),它们分别运行在Core0和 Core1上。假设线程A想要通过pthread_mutex_lock操作去得到一个临界区的锁,而此时这个锁正被线程B所持有,那么线程A就会被阻塞 (blocking),Core0 会在此时进行上下文切换(Context Switch)将线程A置于等待
2016-09-12 10:00:33 2584
原创 关于条件变量的理解
一般情况下,如果互斥量保护的对象不呈现多种状态值,那么用互斥量进行保护就足够了。但是,假如保护的对象呈现多种状态值(即条件),而且某线程不仅仅需要等到该对象并且还要检测该对象当前是某个状态值,该线程才继续向下执行,在这种情况下,该线程就不得不周期性的加锁、判断对象状态值、解锁(不能一直加锁,因为总得给其它线程机会以改变对象状态值),这个动作显然是无谓的浪费资源。条件变量就是为解决这个问题设
2016-09-09 19:48:28 484
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人