定義乙個執行緒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 如果生產者試圖生產更多的產品,店員會叫生產者停一下,如果店中有空位放產品了再通知生產者繼續生產 如果店中沒有產品了,店員會告訴消...