信号量在多线程中,主要是用于线程的同步或者限制线程运行的数量. 所谓同步,当流程1运行在线程1中,流程2运行在线程2中,流程2必须在流程1结束之后才能开始执行.你会怎么做,所有就需要给出一个流程1结束的信号. 在信号来之前,让线程2先在某个位置等待,这个使用方式和互斥锁有点类似,互斥从某种意义上也是一种同步,只是互斥锁更倾向于保护共同资源.信号量大于0的时候就代表有信号,不需要等待,但不仅仅是1. 下面的这个例子设置了3个线程,设置最大同时只运行2个进程. #include<Windows.h>