多執行緒(1)傳統執行緒回顧
阿新 • • 發佈:2018-12-19
本文介紹的傳統執行緒的回顧
是Java1.5之前回顧,你可以選擇跳過。
Thread類即執行緒類
一執行緒的建立
1.1通過new Thread寫出子類重寫run方法
Thread thread = new Thread(){
public void run(){System.out.println("")};
};
thread.start();
即可執行thread裡面的run()方法,,
1.2通過底層程式碼可看到,Runnable的賦值是Thread的init()方法,
所以一般傳統方式建立執行緒方式是實現Runnable方法:
Thread thread = new Thread(new Runnable(){ public void run(){ System.out.println() }; }; thread.start();
為何更多是是使用實現Runnable的方式,找過資料,個人感覺靠譜的解釋是單一職責原則。
二是傳統的定時器
Timer類,
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("aaa");
}
},10*1000,1000);
定時器選擇schedule或者quartz
三是傳統執行緒的互斥
關於執行緒安全,使用synchronized,程式碼塊裡使用synchronized(兩個執行緒的同一個物件,就是一把鎖){程式碼塊},
或者在方法上使用synchronized,這使得整個方法都受到synchronized的阻塞,保護的是這個方法物件;
四是傳統執行緒的通訊問題
傳統執行緒的執行緒通訊使用的是wait和notify,等待和喚醒
不做過多介紹。