java多執行緒執行順序

2021-09-01 12:54:10 字數 833 閱讀 4990

我們建立兩個執行緒,讓奇數執行緒輸出奇數,偶數執行緒執行輸出偶數。

先來看看**實現:

package test;

import org.ietf.jgss.oid;

public class threadnum extends thread

public void run()

system.out.println(this.getname()+"結束"); }

public static void main(string args)

}

我們新建了乙個類繼承執行緒,重寫了run的方法。開始跑執行緒的時候先輸出執行緒名稱,再輸出對應的奇數或者偶數。

執行緒執行完之後會輸出執行緒執行結束。

看看執行的結果。

可以看到輸出完當前的執行緒是main之後,執行當前活動的執行緒是3並沒有執行輸出當前執行的執行緒是:奇數執行緒

這是因為多執行緒是非同步執行,輸出活動執行緒的語句並不會等待其他執行緒執行。而且開啟執行緒需要一定的時間。

所以會先執行當前活動的執行緒是3然後先執行奇數執行緒或者先執行偶數執行緒並沒有嚴格的順序,這是由作業系統

排程的。輸出當前執行緒是奇數執行緒後立即切換第二個執行緒,輸出當前執行緒是偶數執行緒。然後每次輸出乙個數之

後切換執行緒。由於執行緒切換的速度快的話,所以會出現上面的情況。執行緒切換速度快慢與cpu處理速度和多核有關。

多執行緒按照順序執行

自己瀏覽了多個的文章,自己的理解加上的思路,彙總成了這篇文章 1.如何讓多執行緒按照既定順序執行 2.原理 1.直接上 final long start system.currenttimemillis thread t1 new thread catch interruptedexception ...

控制多執行緒執行順序

雖然專案用不上,先備份吧,控制多執行緒執行順序有兩種方法 1.通過join方法保證多執行緒的順序性的特性 join 讓主線程等待子執行緒結束後才能繼續執行 public static void main string args throws interrupterexception 2.excuto...

Java 在多執行緒當中順序執行程式

有三個執行緒,每個執行緒,列印a b c 的操作,現要求同時執行三個執行緒,要求列印的順序為a b c 不亂序,重複10次。在這裡實際上是要進行執行緒的順序操作。一般來說,執行緒的操作是無序的,隨機發生的,若只是單純的讓這些執行緒發生的話,那麼abc的列印順序自然就是無序的。那麼,現在的問題就在於要...