使用多執行緒實現輸出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多執行緒的實現Java執行緒
- JavaScript如何實現多執行緒?JavaScript執行緒
- Runnable介面實現多執行緒執行緒
- python多執行緒實現Python執行緒
- NSThread實現多執行緒thread執行緒
- NSThread多執行緒實現thread執行緒
- 多執行緒-匿名內部類的方式實現多執行緒程式執行緒
- 如何使用queue模組實現多執行緒爬蟲執行緒爬蟲
- Java之實現多執行緒的方式三:實現Callable介面(結合執行緒池使用)Java執行緒
- 多執行緒使用執行緒
- 多執行緒爬蟲實現(上)執行緒爬蟲
- java實現多執行緒的方法Java執行緒
- 面試-實現多執行緒的方式面試執行緒
- Java多執行緒的實現方法Java執行緒
- 多執行緒-多執行緒方式1的程式碼實現執行緒
- Java併發和多執行緒4:使用通用同步工具CountDownLatch實現執行緒等待Java執行緒CountDownLatch
- Java多執行緒-執行緒池的使用Java執行緒
- 使用委託開啟多執行緒(多執行緒深入)執行緒
- 深入淺出Java多執行緒(十二):執行緒池Java執行緒
- 用多執行緒,實現併發,TCP執行緒TCP
- 多執行緒伺服器的實現執行緒伺服器
- 多執行緒基礎-基礎實現執行緒
- Java多執行緒【三種實現方法】Java執行緒
- 純Mutex實現多執行緒交替列印Mutex執行緒
- 用Pthread實現多執行緒操作thread執行緒
- Java多執行緒-基礎及實現Java執行緒
- Swift實現多執行緒map函式Swift執行緒函式
- JAVA多執行緒下載的實現Java執行緒
- 實現FTP多執行緒下載 (轉)FTP執行緒
- 在Vb下實現多執行緒 (轉)執行緒