1116 列印零與奇偶數

2021-09-26 14:19:28 字數 1185 閱讀 6418

假設有這麼乙個類:

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...