现在流行的进程线程同步互斥的控制机制,其实是由最原始的、最基本的四种方法(临界区、互斥量、信号量、事件)实现的。1)临界区(Critical Section):通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。
2)互斥量(Mutex):为协调对一个共享资源的单独访问而设计,只有拥有互斥量的线程才有权限去访问系统的公共资源,因为互斥量只有一个,所以能够保证资源不会同时被多个线程访问。互斥不仅能实现同一应用程序的公共资源安全共享,还能实现不同应用程序的公共资源安全共享。
3)信号量(Semaphore):为控制一个具有有限数量的用户资源而设计。它允许多个线程在同一个时刻去访问同一个资源,但一般需要限制同一时刻访问此资源的最大线程数目。
4)事件(Event):用来通知线程有一些事件已发生,从而启动后继任务的开始。