1. 程式人生 > >java 多線程面試

java 多線程面試

col his java ava wait 系統 不同 ble 缺點

一、多線程的創建

1、多線程的創建

(1)、繼承Thread類

(2)、實現Runnable接口

2、兩種啟動線程方法的區別

  1、共同點 必須調用Thread 產生線程,然後調用start()方法 開啟這個線程

  2、不同點 因為Java是單繼承這個特點 所以為了彌補這個缺點 我們可以實現Runnable接口 靈活

       如果繼承Thread類 那麽多線程的話,就必須相應產生多個線程

       如果實現Runnable接口,只需建立一個實現這個類的實例,然後用這個實例產生多個線程,就實現了資源的共享

3、start/run方法的區別

  start方法說明進入就緒狀態,什麽時候執行是看操作系統調度的,而run方法 是按順序執行,沒有多線程的效果

二、線程間通信

  1、synchronized關鍵字

    1)、synchronized對象鎖

      

synchronized public void methodA(){

}

public void methodB(){
  synchronized(this){
    
    }
}

    2)、synchronized來實現線程間的通信

      就是通過共享變量來進行通信

    3)、synchronized/volatile

    4)、synchronized/lock

  2、sleep/wait

  3、wait/notify機制

java 多線程面試