執行緒的方法

2021-06-16 07:07:55 字數 1721 閱讀 2911

1、  終止執行緒的方法

(1)          interrupt()不會終止執行緒,知識設定終止標記。

(2)          如果interrupt返回的為true。則利用break()和return()來終止執行緒。

(3)          interrupted檢測interrupt是否標記終止,如果標記則返回為true,否則返回為false。

例:for(inti=0;i<5;i++)catch(interruptedexception e)

}2、 執行緒的同步方法

(1)     wait():被鎖定的物件可以呼叫wait()方法,這將導致當前執行緒被阻塞並釋放物件的互斥鎖,即解除了wait()方法當前物件的鎖定狀態,其他的執行緒就有機會訪問該物件。

(2)     notify():喚醒呼叫wait()方法後被阻塞的執行緒。每次執行該方法只能喚醒乙個執行緒

(3)   notifyall():喚醒所有呼叫wait()方法被阻塞的執行緒。

3、生產者和消費者 

(1)生產者執行一次,消費者執行一次

(3)在某個時候執行緒a執行速度比較快,它讀完一次資料之後,執行緒b還沒來得及寫,執行緒a又來讀第二次。結果執行緒a讀不到資料,導致執行出錯

(4)執行緒b正在寫資料時,執行緒a也來讀取資料,這時可能執行緒b還沒將資料寫完,執行緒a將資料讀走,導致程式出錯

解決上述問題錯誤問題的方法

(1)     是生產者和消費者達到同步:在兩者上加上互斥鎖,但是會出現死鎖,則用wait()和notify()方法

(2)     在生產者和消費者之間建立乙個渠道

4、 time和timer

(1)timer類的實現類似腦中的功能,定時或每個一段時間出發一次執行緒。

(2)timertask類是乙個抽象類,該類實現了runnable介面,具備多執行緒的能力。

(3)通過繼承timertask類建立子類,使該子類獲得多執行緒的能力,將需要多執行緒執行的**書寫在run方法內部,然後通過timer類啟動執行緒的執行

(4)schedule()方法

public void schedule(timertask task,date time):該方法的作用是在到達time指定的時間或已經超過該時間時執行執行緒task。

date d = new date(2009-1900,10-1,1,10,0,0);

t. schedule(task,d);

public void schedule(timertask task, date firsttime, long period):

在時間到達firsttime開始,每隔period毫秒就啟動一次task指定的執行緒,這種方式會重複啟動執行緒。

date d = new date(2009-1900,10-1,1,10,0,0);

t. schedule(task,d,20000);

public void schedule(timertask task,long delay)在執行schedule方法delay毫秒以後啟動執行緒task。

t.schedule(task,1000);//在執行該行啟動**1000毫秒後啟動一次執行緒task

public void schedule(timertask task,long delay,long period):在執行schedule方法delay毫秒以後啟動執行緒task,然後每隔period毫秒重複啟動執行緒task

java執行緒 執行緒的常用方法

方法詳解 start 和 run 方法 setname 和 getname setpriority 和 getpriority setdaemon yield 和 join interrupt 執行緒常用方法 方法 功能start 啟動執行緒並執行相應的run 方法 run 執行緒要執行的 放入ru...

執行緒同步的方法

一 執行緒同步的方法 1 reentrantlock a 加鎖 reentrantlock lock new reentrantlock finally b condition variable condition fund finally 2 synchronized a 加鎖 synchroni...

執行緒同步的方法

1 wait方法 該方法屬於object的方法,wait方法的作用是使得當前呼叫wait方法所在部分 塊 的執行緒停止執行,並釋放當前獲得的呼叫wait所在的 塊的鎖,並在其他執行緒呼叫notify或者notifyall方法時恢復到競爭鎖狀態 一旦獲得鎖就恢復執行 呼叫wait方法需要注意幾點 第一...