1
我有兩個大小爲10的信號量。兩個信號量是互斥的,例如:尋找信號量互鎖機制?
最初這兩個信號量是空的。如果其中一個信號量具有內容,它將阻止另一個信號量,以使其不能填充內容。只有當原信號量被清空時它才能解除其他信號量的阻塞。並且過程繼續。
從編程意義上講,如果一個信號量有內容,另一個信號量被內核阻塞。我將如何去執行這種鎖定?
我有兩個大小爲10的信號量。兩個信號量是互斥的,例如:尋找信號量互鎖機制?
最初這兩個信號量是空的。如果其中一個信號量具有內容,它將阻止另一個信號量,以使其不能填充內容。只有當原信號量被清空時它才能解除其他信號量的阻塞。並且過程繼續。
從編程意義上講,如果一個信號量有內容,另一個信號量被內核阻塞。我將如何去執行這種鎖定?
可能是這樣定義一個類,並使用額外的Pairing
布爾
class semaphore
{
int value;
Boolean Locked;
Boolean Paired;
voidsetvalue(int val)
{
if(Paired==true)
{
Locked=true
}
if(locked==false)
{
value=val;
locked=true;
}
}
void release()
{
Locked=false;
value=0;
}
void releasepair()
{
Paired=false;
}
}
信號量作爲資源計數器解釋。你想要這樣一個奇怪的資源,當它存在時,其他資源不能被添加到池中。你最好在沒有信號量的情況下解釋你的任務,只用資源或消息等術語。 –