假設有這麼乙個類:
class zeroevenodd // 建構函式
public void zero(printnumber) // 僅列印出 0
public void even(printnumber) // 僅列印出 偶數
public void odd(printnumber) // 僅列印出 奇數
}相同的乙個 zeroevenodd 類例項將會傳遞給三個不同的執行緒:
執行緒 a 將呼叫 zero(),它只輸出 0 。
執行緒 b 將呼叫 even(),它只輸出偶數。
執行緒 c 將呼叫 odd(),它只輸出奇數。
每個執行緒都有乙個 printnumber 方法來輸出乙個整數。請修改給出的**以輸出整數序列 010203040506... ,其中序列的長度必須為 2n。
示例 1:
輸入:n = 2
輸出:"0102"
說明:三條執行緒非同步執行,其中乙個呼叫 zero(),另乙個執行緒呼叫 even(),最後乙個執行緒呼叫odd()。正確的輸出為 "0102"。
示例 2:
輸入:n = 5
輸出:"0102030405"
class zeroevenodd
// printnumber(x) outputs "x", where x is an integer.
void zero(functionprintnumber)
// printnumber(x) outputs "x", where x is an integer.
void zero(functionprintnumber) );
printnumber(0);
if(i%2==0)
state=2;
else
state=1;
cv.notify_all();}}
void even(functionprintnumber) );
printnumber(i);
state=0;
cv.notify_all();}}
void odd(functionprintnumber) );
printnumber(i);
state=0;
cv.notify_all();}}
};
1116 列印零與奇偶數
題目描述 假設有這麼乙個類 class zeroevenodd 建構函式 public void zero printnumber 僅列印出 0 public void even printnumber 僅列印出 偶數 public void odd printnumber 僅列印出 奇數 相同的乙...
列印零與奇偶數
題目 用三個互斥鎖控制列印0,奇數,偶數的順序。每把鎖控制一種列印。列印0後,如果是偶數,則釋放奇數鎖,即開始列印奇數。反之,釋放偶數鎖。列印奇數後,釋放0鎖 列印偶數後,釋放0鎖。class zeroevenodd printnumber x outputs x where x is an int...
列印零與奇偶數
假設有這麼乙個類 class zeroevenodd 建構函式 public void zero printnumber 僅列印出 0 public void even printnumber 僅列印出 偶數 public void odd printnumber 僅列印出 奇數 相同的乙個 zer...