Java之 執行緒通訊 標誌位練習2

2021-07-31 11:24:27 字數 1335 閱讀 1907

定義乙個執行緒a,輸出1 ~ 10之間的整數,定義乙個執行緒b,逆序輸出1 ~ 10之間的整數,要求執行緒a和執行緒b交替輸出

方法一:非標誌位方法

package homework;

//1 定義乙個執行緒a,輸出1 ~ 10之間的整數,定義乙個執行緒b,逆序輸出1 ~ 10之間的整數,要求執行緒a和執行緒b交替輸出

public

class

test1

}class

aextends

thread

public a(object obj)

//正序列印

@override

public

void run() catch (interruptedexception e) }}

}}class

bextends

thread

public b(object obj)

//逆序列印

@override

public

void run() catch (interruptedexception e)

synchronized (obj) catch (interruptedexception e) }}

}}

}

執行結果:

方法二:採用標誌位

package homework;

//1 定義乙個執行緒a,輸出1 ~ 10之間的整數,定義乙個執行緒b,逆序輸出1 ~ 10之間的整數,要求執行緒a和執行緒b交替輸出

public

class

test2

}class

a1extends

thread

public a1()

@override

public

void run() catch (interruptedexception e)

}c.print(i);

c.flag=true;

c.notify();}}

}}class

b1extends

thread

public b1()

@override

public

void run() catch (interruptedexception e)

}c.print(i);

c.flag=false;

c.notify();}}

}}class

c }

執行結果

Java之執行緒通訊一

寫2個執行緒,其中乙個列印1 52,另乙個列印a z,列印順序是12a34b56c 5152z。這裡使用執行緒通訊的方式控制上面的列印順序。該類提供兩個同步方法printchar 和printnumber 分別列印字元和數字。通過兩個列印執行緒之間的通訊控制 每列印兩個數字後,列印乙個字元,如此迴圈...

java學習之執行緒2

賣演唱會票例子 保證 多個執行緒訪問共享的資料 資料只有乙份 public static void main string args 介面實現執行緒的方式 class ticketrunnable implements runnable catch interruptedexception e 賣s...

Java執行緒通訊練習之「生產者 消費者問題」

示例 生產者 消費者問題 生產者 productor 將產品交給店員 clerk 而消費者 customer 從店員處取走產品,店員一次只能持有固定數量的產品 比如 20 如果生產者試圖生產更多的產品,店員會叫生產者停一下,如果店中有空位放產品了再通知生產者繼續生產 如果店中沒有產品了,店員會告訴消...