多线程同步——互斥、事件、临界区区别

1、互斥对象和事件对象是内核对象速度慢,可以在多个进程的各个线程间进行同步。

2、临界区:工作在用户方式下,速度快。但是无法设置超时时间,容易产生死锁。只能用于对象在同一进程里线程间的互斥访问。适合控制数据访问。 

3、临界区和互斥对象在Windows平台都下可用;Linux下只有互斥对象可用。

用途:

四种进程或线程同步互斥的控制方法
1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 
2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 
3、信号量:为控制一个具有有限数量用户资源而设计。 
4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。

进行多线程编程时,首选临界区。

你可能感兴趣的:(线程进程)