1. 同步信号量:同步信号量用于通过对其进行 P(等待)和 V(发出信号)操作来控制对临界区或共享资源的访问。初始值为1,表示资源可用。当一个进程或线程需要访问该资源时,它会尝试执行 P 操作,如果同步信号量的值为1,则可以继续执行,否则需要等待其他进程或线程的信号。这样可以保证同一时间只有一个进程或线程可以访问共享资源。
2. 互斥信号量:互斥信号量用于实现互斥访问,即确保同一时间只有一个进程或线程可以进入临界区。初始值为0,表示资源被占用。当进程或线程需要进入临界区时,需要执行 P 操作。如果互斥信号量的值为0,表示资源被占用,进程或线程需要等待。只有当临界区中的进程或线程执行 V 操作后,互斥信号量的值变为1,其他进程或线程才能进入临界区。