多线程
pingguonjb
这个作者很懒,什么都没留下…
展开
-
多线程编程中条件变量和虚假唤醒(spurious wakeup)的讨论
概述 条件变量(condition variable)是利用共享的变量进行线程之间同步的一种机制。典型的场景包括生产者-消费者模型,线程池实现等。 对条件变量的使用包括两个动作: 1) 线程等待某个条件, 条件为真则继续执行,条件为 假则将自己挂起(避免busy wait,节省CPU资源); 2) 线程执行某些处理之后,条件成立;则通知等待该条件的线程继续执行。 3) 为转载 2015-06-07 20:00:10 · 464 阅读 · 0 评论 -
线程假唤醒现象
pthread_cond_wait的spurious wakeup问题 最近在温习pthread的时候,忽然发现以前对pthread_cond_wait的了解太肤浅了。昨晚在看《Programming With POSIX Threads》的时候,看到了pthread_cond_wait的通常使用方法: pthread_mutex_lock(); while(condition_is_fals转载 2015-06-07 20:11:10 · 594 阅读 · 0 评论