进程的同步与互斥

看Java的集合操作,有一些类是关于同步,另外一些非同步。一般来说非同步的效率高点。OS好长时间没看,一些基本的概念也忘的差不多了,惭愧,-_-!!!

相互合作的两个进程之间需要在某个(些)确定点协调它们的工作,一个进程到达了该点后,除非另一进程已经完成了某些操作,否则就不得不停下来,等待这些操作的完成。这就是进程间的同步。

两个进程由于不能同时使用同一临界资源,只能在一个进程使用完了,另一进程才能使用,这种现象称为进程间的互斥。

①同步的主要特征是:一个进程在某一点上等待另一进程提供信息,两进程之间存在直接制约关系,其表现形式为进程—进程。
②互斥的主要特征是争用资源,两进程间存在间接制约关系,其表现形式是进程—资源—进程。

互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。
同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。

加上自己的一点理解,对于生产者消费者问题来说
生产者占用缓冲区时,消费者不能占用,反之亦然,这个叫互斥。
消费者必须要等生产者生产之后,才能消费,这个叫同步。

你可能感兴趣的:(进程的同步与互斥)