控制線程的執行順序

2022-09-19 18:18:12 字數 1333 閱讀 3322

在此之前實現了兩個執行緒的交替執行,那麼也該來研究一下如何控制線程的執行順序。

此筆記只有部分實現。

1,使用join();

簡單易操作,此方法有個缺陷就是 呼叫程式寫起來有點冗長,如果有n個執行緒,那麼main();就會非常長,而且有些許重複**。

/**

* @program:

* @description:

* * 控制線程的執行順序

* 1,其餘方法見執行緒交替執行筆記

* 2,join();

* 3,使用了責任鏈設計模式,可以實現n個執行緒的順序控制

* 4,執行緒池 */

public

class

threadorder_1

catch

(interruptedexception e)

}}/**

* 第乙個執行的執行緒 */

class first_1 implements

runnable

}/**

* 第二個執行的執行緒 */

class second_1 implements

runnable

}

基於以上的缺陷(其實缺陷都是瞎謅的,哈哈哈),可以使用責任鏈模式,增加乙個執行緒順序控制類

該方式在呼叫時控制好執行順序,最後只要呼叫一次執行方法即可。【個人覺得有點遞的思想...】

以下實現了3個執行緒的順序控制。 

public

class

threadorder_1 }.

../*** 執行緒順序控制類

* * 責任鏈模式 */

class

threadorder

public

threadorder(runnable first)

public

void

setnextorder(threadorder nextorder)

//具體邏輯實現

public

void

run()

} catch

(interruptedexception e)

}}

2,執行緒池。

控制線程執行順序,可以使用單執行緒singlethreadpool;或者fixedthreadpool(1);

注意關閉執行緒池,否則程式不結束。

public

class

threadorder_1 }.

..

如何控制線程執行的順序?

public class myservice for int i 0 i 2 i ordernum 2 notifyall catch interruptedexception e public synchronized void methodb for int i 0 i 2 i ordernum...

如何控制線程執行的順序?

1 如何控制線程執行的順序?有三個執行緒,讓這三個執行緒按照我們指定的順序執行!答 1.join 方法 讓主線程等待其他執行緒執行完成之後執行。讓主線程放棄cpu的控制權,等待呼叫join方法的執行緒執行完成之後再執行!join 方法底層呼叫的wait 方法,是讓主線程等待其他執行緒執行完成之後執行...

多執行緒02 如何控制線程執行順序

這裡使用join 方法 api中那句 等待該執行緒終止 主語是join方法被呼叫時所處的執行緒,該執行緒 是指呼叫join方法的執行緒。比如現在有a b兩個執行緒物件,在a執行緒 現b.join 那麼a執行緒將會被阻塞 或者說掛起 直到b執行緒執行完畢才會繼續執行b.join 語句下面的 即繼續執行...