1. 程式人生 > >多執行緒,併發,並行

多執行緒,併發,並行

  1. 多執行緒的引入
    1. 什麼是執行緒:
      1. 執行緒是程式執行的一條路徑,一個程序中可以包含多條執行緒
      2. 多執行緒併發可以提高程式效率,同時完成多項工作
  2. 併發和並行的區別
    • 並行就是兩個任務同時執行(需要多核CPU)
    • 併發就是兩個任務都請求執行,而處理器只能接受一個任務,就把兩個任務安排輪流進行,由於時間間隔較短,使人感覺兩個任務都在執行(單個CPU)
    • 如我和兩個網友聊天,左手操作一個電腦和甲聊天,右手操作另一個電腦和乙聊天,叫做並行
    • 如果用一臺電腦先和甲聊天,在和乙聊,再和甲聊,再和乙聊,叫併發。
  3. 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("垃圾被清掃");
          }
      }
      //結果表明兩個執行緒是交叉著執行的

       

    •