列印零與奇偶數

2021-10-09 04:24:55 字數 775 閱讀 8653

假設有這麼乙個類:

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"。

方法:使用semaphore 

using system.threading;

public class zeroevenodd 

else

oddsem.release();

public void even(actionprintnumber) 

執行時間

記憶體消耗

語言116 ms

27.3 mbc#

列印零與奇偶數

題目 用三個互斥鎖控制列印0,奇數,偶數的順序。每把鎖控制一種列印。列印0後,如果是偶數,則釋放奇數鎖,即開始列印奇數。反之,釋放偶數鎖。列印奇數後,釋放0鎖 列印偶數後,釋放0鎖。class zeroevenodd printnumber x outputs x where x is an int...

1116 列印零與奇偶數

假設有這麼乙個類 class zeroevenodd 建構函式 public void zero printnumber 僅列印出 0 public void even printnumber 僅列印出 偶數 public void odd printnumber 僅列印出 奇數 相同的乙個 zer...

1116 列印零與奇偶數

題目描述 假設有這麼乙個類 class zeroevenodd 建構函式 public void zero printnumber 僅列印出 0 public void even printnumber 僅列印出 偶數 public void odd printnumber 僅列印出 奇數 相同的乙...