互斥:就是指在不同程序之间的若干程序片段,如果其中一片片段运行了,那么其他程序就不能再运行这片片段,必须要等运行这个片段的程序运行完毕才能使用
解决的话使用“锁”这个概念来解决
同步:不同的程序必须按照不同的次序来执行
解决的话使用一个数组,pv原语进行解决
p代表的含义是减少1,如果执行了p语句之后,数组的固定值小于0,则阻塞语句,但是等于0的话,继续执行[其实就是向内存中申请空间,所以内存空间减少1]
v代表的含义是加1,如果执行了v语句之后,固定的大于0,则执行语句
线程同步互斥的四种方式:
1、临界区 : 一个进程内的多个线程访问公共区域或者代码段时使用
2、互斥量 : 不同进程的多线程访问公共区域或者代码段
3、事件 : 通过线程间触发事件实现同步互斥
4、信号量 : 在公共区域设置一个访问链接最大数,每有一个线程访问共享区域,那连接数减一,直到资源数小于等于0