互斥量和读写锁解决了多线程访问共享变量产生的竞争问题,那么条件变量的作用何在呢。
条件变量的作用在于他给多个线程提供了一个汇合的场所。什么意思呢?
举个最简单的例子,比如运动会赛跑中,所有选手都会等到发令枪响后才会跑,吧选手比作
其他的子线程。发令员比作主线程。 那么就是说, 所有的子线程现在都在等待主线程给予
一个可以运行的信号(发令枪响)。这就是这些子线程的汇合点。如果主线程没给信号,那么子线程就会阻塞下去 。
条件变量的作用在于他给多个线程提供了一个汇合的场所。什么意思呢?
举个最简单的例子,比如运动会赛跑中,所有选手都会等到发令枪响后才会跑,吧选手比作
其他的子线程。发令员比作主线程。 那么就是说, 所有的子线程现在都在等待主线程给予
一个可以运行的信号(发令枪响)。这就是这些子线程的汇合点。如果主线程没给信号,那么子线程就会阻塞下去 。