使用多執行緒實現輸出1-a 2-b 3-c 4-d ..........
1.緩衝類
package demo07;
public class Buffer {
private static final int maxCount=1;//最大儲存執行緒數量
private int ch;
private int charnum='a'-1;//字母a-z
private int num=0;//數字1-26
public Buffer(int ch){
this.ch=ch;
}
synchronized public void outNumbers(int ch){
while(this.ch+ch>maxCount){
try {
this.wait();
} catch (Exception e) {
e.printStackTrace();
}
}
this.num++;
System.out.print(this.num+"--");
this.ch+=ch;
this.notifyAll();
}
synchronized public void outChars(int ch){
while(this.ch<maxCount){
try {
this.wait();
} catch (Exception e) {
e.printStackTrace();
}
}
this.charnum+=1;
System.out.println((char)this.charnum);
this.ch-=ch;
this.notifyAll();
}
}
2.數字輸出類
package demo07;
public class Numbers extends Thread{
private Buffer buffer;
private int ch;
public Numbers(Buffer buffer,int ch){
this.buffer=buffer;
this.ch=ch;
}
@Override
public void run() {
this.buffer.outNumbers(ch);
}
}
3.字母輸出類
package demo07;
public class CharNumbers extends Thread{
private Buffer buffer;
private int ch;
public CharNumbers(Buffer buffer,int ch){
this.buffer=buffer;
this.ch=ch;
}
@Override
public void run() {
this.buffer.outChars(ch);
}
}
4.測試類
package demo07;
public class Test {
public static void main(String[] args) {
Buffer buffer=new Buffer(0);
for(int i=0;i<26;i++){
Thread num=new Numbers(buffer,1);
Thread charnum=new CharNumbers(buffer,1);
num.start();
charnum.start();
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3705/viewspace-2815069/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何實現多執行緒執行緒
- 多執行緒實現多工二執行緒
- 多執行緒實現多工一執行緒
- Faiss使用多執行緒出現的效能問題AI執行緒
- 使用Java實現多執行緒程式設計Java執行緒程式設計
- 使用多執行緒實現郵件傳送執行緒
- Java之實現多執行緒的方式三:實現Callable介面(結合執行緒池使用)Java執行緒
- Java多執行緒的實現Java執行緒
- Java多執行緒實現方式Java執行緒
- 【unity】 Loom實現多執行緒UnityOOM執行緒
- JavaScript如何實現多執行緒?JavaScript執行緒
- Runnable介面實現多執行緒執行緒
- 多執行緒具體實現執行緒
- 多執行緒爬蟲實現(上)執行緒爬蟲
- 用Pthread實現多執行緒操作thread執行緒
- 【連載 02】多執行緒實現執行緒
- Java多執行緒-執行緒池的使用Java執行緒
- 如何使用queue模組實現多執行緒爬蟲執行緒爬蟲
- 使用委託開啟多執行緒(多執行緒深入)執行緒
- java使用多執行緒Java執行緒
- 深入淺出Java多執行緒(十二):執行緒池Java執行緒
- java多執行緒之執行緒的基本使用Java執行緒
- 面試-實現多執行緒的方式面試執行緒
- 【QT】QtConcurrent::run()+QThreadPool實現多執行緒QTthread執行緒
- 純Mutex實現多執行緒交替列印Mutex執行緒
- 用多執行緒,實現併發,TCP執行緒TCP
- Python簡單實現多執行緒例子Python執行緒
- Java多執行緒【三種實現方法】Java執行緒
- 多執行緒伺服器的實現執行緒伺服器
- 多執行緒基礎-基礎實現執行緒
- 5招教你實現多執行緒場景下的執行緒安全!執行緒
- Java高併發與多執行緒(二)-----執行緒的實現方式Java執行緒
- socket實現服務端多執行緒,客戶端重複輸入服務端執行緒客戶端
- 多執行緒和多執行緒同步執行緒
- 多執行緒:執行緒池理解和使用總結執行緒
- 【多執行緒高併發程式設計】二 實現多執行緒的幾種方式執行緒程式設計
- 多執行緒--執行緒管理執行緒
- 執行緒與多執行緒執行緒