2017 3つの相互に排他的な同期プロセス

typedefは構造体
{
    フロート;
    フロートB;
} CNUM。
CNUM X、Y、Z。
CNUM追加(CNUMのp、qはCNUM)
{
    CNUM秒;
    SA = p.a + q.a。
    SB = p.b + q.b。
    リターン秒;
}
mutex1 SEM = 1 ; // T1およびT2の変数yの排他的アクセス 
SEM = mutex2 1 ; // 変数yにt2とt3の排他的アクセス 
SEM = mutex3 1 ; // 変数z排他 
スレッド1。
{
   CNUMのワット。
   P(mutex1)。
   W = (x、y)を加えます。
   V(mutex1)。
}
スレッド2
{
    CNUMのワット。
    P(mutex2)。
    P(mutex3)。
    W = (Y、Z)を加えます。
    V(mutex3)。
    V(mutex2)。
}
スレッド3
{
    CNUMのワット。
    WA = 1 
    WB = 1 
    P(mutex3)。
    Z = (W、Z)を加えます。
    V(mutex3)。
    P(mutex1)。
    P(mutex2)。
    Y = (Y、W)を加えます。
    V(mutex1)。
    V(mutex2)。
}

 

おすすめ

転載: www.cnblogs.com/yangmenda/p/11708554.html