C++线程同步与互斥总结

互斥:当多个线程访问同一个全局变量,或者同一个资源(好比打印机)的时候,须要进行线程间的互斥操做来保证访问的安全性。安全

临界区、互斥体、事件和信号量均可以实现线程互斥.但若是仅仅须要实现互斥功能,推荐前两种。

二者的区别:
一、临界区只能用于进程内的线程互斥,性能较好。
二、互斥体属于内核对象,能够用于进程间的线程互斥,性能较差。
三、线程在没有正常退出互斥区而意外终结时,互斥体能够复位,但临界区不行.。 性能

线程同步:当有多个线程同时执行时,可能须要线程按照必定的顺序执行,好比:线程A负责将要处理的数据读取到内存中,而线程B
负责分析这些数据,此时,应该是线程A执行完毕再执行线程B才有意义,这个时候就须要进行线程的同步控制。

能够用于线程同步控制的对象:事件和信号量。spa

二者的区别:
一、都是内核对象,使用完毕后应该关闭句柄。
二、信号量能够用于至关复杂的线程同步控制.。 线程

相关文章
相关标签/搜索