線程對象基本概念

  1. 線程對象:兩種方式聲明開啓線程、sleep暫停執行、中斷(interrupts)、線程迴歸(join)、簡單線程示例
  2. 兩種方式聲明開啓線程:實現runnable接口、繼承Thread
  3. sleep方式暫停線程執行Thread.sleep()
  4. 中斷:一個線程調用interrupt方法中斷該線程(僅僅會將中斷標誌位置爲true),使該線程處於中斷狀態。

    如果是wait、sleep以及jion三個方法引起的阻塞,那麼會將線程的中斷標誌重新設置爲false,並拋出一個InterruptedException;

    如果是java.nio.channels.InterruptibleChannel進行的io操作引起的阻塞,則會對線程拋出一個ClosedByInterruptedException;(待驗證)

    如果是輪詢(java.nio.channels.Selectors)引起的線程阻塞,則立即返回,不會拋出異常。(待驗證)

    interrupted()方法返回方法調用對象線程的中斷狀態,若爲中斷的,則返回true,並將中斷標誌位置爲false;若在下次調用interrupted()方法之前,線程沒有再中斷,那麼再次調用該方法就會返回false。

    isInterrupted()方法返回當前中斷標誌位的狀態

  5. 線程迴歸:即在當前線程上新開一個線程t,並執行t.join(),那麼當前線程就會一直等到t線程執行完畢再執行後面的代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章