某进程中有3个并发执行的线程threadl、thread2和thread3,其伪代码如下所示。 请添加必要的信号量和P、V(或wait( )、signal( ))操作,要求确保线程互斥访问临界资源,并且最大程度地并发执

admin2018-08-17  21

问题 某进程中有3个并发执行的线程threadl、thread2和thread3,其伪代码如下所示。

请添加必要的信号量和P、V(或wait(          )、signal(          ))操作,要求确保线程互斥访问临界资源,并且最大程度地并发执行。

选项

答案先找出线程对在各个变量上的互斥、并发关系。如果是一读一写或两个都是写,那么这就是互斥关系。每一个互斥关系都需要一个信号量进行调节。 semaphore mutex__y1=1;//mutex__y1用于threadl与thread3对变量y的互斥访问。 semaphore mutex__y2=l://mutex__y2用于thread2与thread3对变量y的互斥访问。 semaphore mutex z=1; //mutex__z用于变量z的互斥访问。 互斥代码如下: [*]

解析
转载请注明原文地址:https://kaotiyun.com/show/oSRi777K
0

最新回复(0)