多執行緒,併發,並行
阿新 • • 發佈:2018-11-13
- 多執行緒的引入
- 什麼是執行緒:
- 執行緒是程式執行的一條路徑,一個程序中可以包含多條執行緒
- 多執行緒併發可以提高程式效率,同時完成多項工作
- 什麼是執行緒:
- 併發和並行的區別
- 並行就是兩個任務同時執行(需要多核CPU)
- 併發就是兩個任務都請求執行,而處理器只能接受一個任務,就把兩個任務安排輪流進行,由於時間間隔較短,使人感覺兩個任務都在執行(單個CPU)
- 如我和兩個網友聊天,左手操作一個電腦和甲聊天,右手操作另一個電腦和乙聊天,叫做並行
- 如果用一臺電腦先和甲聊天,在和乙聊,再和甲聊,再和乙聊,叫併發。
- Java的執行緒問題
- Java程式執行原理:Java會啟動Java虛擬機器,等於啟動了一個應用程式,也就是啟動了一個程序,該程序會自動啟動一個“主執行緒”,然後主執行緒去呼叫某個類的main方法;
- JVM的啟動時多執行緒的嗎:JVM至少啟動了垃圾回收執行緒和主執行緒,所以是多執行緒的。舉例:
public class Main { public static void main(String[] args) { System.out.println("Hello World!"); for (int i = 0; i < 1000000; i++) { new Demo(); } for (int i = 0; i < 1000; i++) { System.out.println("主執行緒"); } } } class Demo{ //垃圾回收 @Override public void finalize() throws Throwable { // super.finalize(); System.out.println("垃圾被清掃"); } } //結果表明兩個執行緒是交叉著執行的
-