* 多執行緒並不會提高執行效率,效能更低
* 多執行緒會搶占cpu的資源,會占用更多的伺服器頻寬,這樣看起來就感覺會更快
建立執行緒有兩種方式:一種是建立thread的子類,覆蓋thread的run方法,還有一種是構造器傳入runnable物件,使用runnable物件的run方法:
public class traditionlthread catch (exception e)
system.out.println(thread.currentthread().getname());}}
};thread.start();
// 原始碼裡邊是runnable物件不為null就執行runnable的run方法
// 方式二:建構函式中傳入runnable物件
thread thread2 = new thread(new runnable() catch (exception e)
system.out.println(thread.currentthread().getname());}}
});thread2.start();
/** 兩種方式的區別:
* 第二種方式更加體現物件導向的方式
* * */
// 同時有子類的run方法和runnable物件,那麼程式會執行子類的run方法,子類的方法會覆蓋父類的
new thread(new runnable() catch (exception e)
system.out.println("runnable thread:" + thread.currentthread().getname());}}
}) catch (exception e)
system.out.println("子類 thread:" + thread.currentthread().getname());}};
}.start();
}}
執行緒的互斥:使用sychronized關鍵字
/**
* 傳統執行緒互斥技術
* 執行緒安全問題可以用銀行轉賬來解釋
* @author admin
*/public class traditionalsychronized
/*** 這樣寫會出現錯亂
*/static class output
}}).start();
for(int i= 0 ; i< 50 ; i++) }
static class business catch (interruptedexception e)
}for(int j=0; j<10; j++)
shouldsub = false;
this.notify();
} public synchronized void main(int i) catch (interruptedexception e)
}for(int j=0; j<5; j++)
shouldsub = true;
this.notify();
} }}
傳統執行緒的互斥
傳統的執行緒互斥的乙個例子 public class traditionalthreadsynchronized 解決方法 private void init catch interruptedexception e out.output google start 執行緒二 內部類不能建立靜態方法和...
傳統執行緒的建立
編寫執行緒執行時執行的 有兩種方式 一種是建立thread子類的乙個例項並重寫run方法,第二種是建立類的時候實現runnable介面 一 建立thread子類 1.繼承thread類建立 public class mythread extends thread public class main ...
java 傳統多執行緒
傳統多執行緒 public class traditionalthread catch interruptedexception e system.out.println 1 thread.currentthread getname system.out.println 2 this.getname...