
多线程
X-Programer
这个作者很懒,什么都没留下…
展开
-
线程同步精要
线程同步,“同”字从字面上容易理解为一起动作,其实不然,“同”字应是指协同、协助、互相配合。同步(synchronous)就是协同步调,按预定的先后次序进行运行。如:你说完,我再说。 在多线程编程里,当两个或两个以上的线程共享某些资源或需要相互配合来完成某些工作时,就必须通过线程同步来协调各个线程运行的次序,否则会出现线程安全问题。比如在线程A和B配合工作时,A执行到一定程度原创 2018-01-31 23:30:18 · 237 阅读 · 0 评论 -
线程死锁问题
所谓死锁是指多个线程因竞争资源而造成的一种僵局,多个线程被无限的阻塞,线程之间相互等待所需的资源,若无外力作用,这些进程都将无法向前推进。 死锁的产生,通常是下面的两种情况: 1.如果线程试图对同一个互斥量加锁两次,那么它自身就会陷入死锁状态,使用互斥量时, 2.如果程序使用多个互斥量时,如果允许一个线程一直占有第原创 2018-02-02 08:24:42 · 270 阅读 · 0 评论 -
muduo库源码阅读之MutexLock、MutexLockGuard、Contidion、CountDownLatch分析
一、互斥锁封装:Mutex.h github地址:https://github.com/chenshuo/muduo/blob/master/muduo/base/Mutex.h 1.1 MutexLock类互斥量是线程同步常用的变量,但在实际中一般都是使用封装的函数,这样便于操作。MutexLock封装临界区(critical section),这是一个简单的资源类,原创 2018-02-02 23:10:56 · 1517 阅读 · 0 评论 -
Linux线程同步——条件变量
一. 概述 条件变量(condition variable)是利用共享的变量进行线程之间同步的一种机制。典型的场景包括生产者-消费者模型,线程池实现等。 与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。 条件变量使我们可以睡眠等待某种条件出现。条件变量是原创 2018-02-04 09:29:56 · 1235 阅读 · 0 评论