进程、线程实现同步的方式
临界区:临界区只限制在同一进程的各个线程之间使用,先V后P
互斥量:互斥量跟临界区很相似,只是它允许在进程间使用
信号量:为控制一个具有有限数量用户资源而设计。它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目。互斥量是信号量的一种特殊情况,当信号量的最大资源数=1就是互斥量了。
事件机制:允许一个线程在处理完一个任务后,主动唤醒另外一个线程执行任务。
互斥量与临界区的作用非常相似,但互斥量是可以命名的,也就是说互斥量可以跨越进程使用,但创建互斥量需要的资源更多,所以如果只为了在进程内部是用的话使用临界区会带来速度上的优势并能够减少资源占用量 。因为互斥量是跨进程的互斥量一旦被创建,就可以通过名字打开它。
互斥量,信号量,事件机制都可以被跨越进程使用来进行同步数据操作。
线程间的通信目的主要是用于线程同步,所以线程没有像进程通信中的用于数据交换的通信机制