Java執行緒中yield 方法的使用

2021-09-19 20:36:40 字數 1799 閱讀 7296

yield()方法的作用是:暫停當前正在執行的執行緒物件,並執行其他執行緒。注意:這裡的其他也包含當前執行緒。

1.首先繼承thread實現乙個子類yieldtest,在它的run方法中執行yield()方法。
class

yieldtest

extends

thread

}

2.然後繼承thread實現乙個子類sleeptest,在它的run方法中執行sleep方法,用來對比yield方法。
class

sleeptest

extends

thread

catch

(exception e)

system.out.

println

("sleeptest-2");

yieldandsleep.

calculate()

; system.out.

println

("sleeptest-run-end");

}}

3.最後分別啟動兩個yieldtest執行緒和兩個sleeptest執行緒,觀察它們的執行狀況
public

class

yieldandsleep

}public

static

void

main

(string[

] args)

for(

int i =

1; i <=

2; i++)}

}

4.看一下執行的結果
yieldtest().start()-begin

每次的執行結果可能都不太一樣,就拿這次的來分析一下。可以看到第14行輸出sleeptest-1,它是在yieldtest-1之後列印出來的,就是因為在system.out.println("yieldtest-1");之後執行了yield();方法,所以從yieldtest執行緒轉換到了sleeptest執行緒。當然也有可能還是轉換到yieldtest自己這個執行緒。

the end.

執行緒中的yield 方法

thread.yield 方法作用是 暫停當前正在執行的執行緒物件 及放棄當前擁有的cup資源 並執行其他執行緒。yield 做的是讓當前執行執行緒回到可執行狀態,以允許具有相同優先順序的其他執行緒獲得執行機會。因此,使用yield 的 目的是讓相同優先順序的執行緒之間能適當的輪轉執行。但是,實際中...

執行緒中yield的方法

執行緒中yield的解釋是 yield 方法的作用是放棄當前的cpu資源,讓其他任務去占用cup執行時間,放棄的時間不確定,又可能是剛剛放棄,馬上獲取cup時間片 這個方法很像sleep,那麼yield和sleep的區別 sleep 方法給其他執行緒執行機會時不考慮執行緒的優先順序 yield 方法...

Java執行緒中yield 的用法

thread.yield 方法作用是 暫停當前正在執行的執行緒物件 及放棄當前擁有的cup資源 並執行其他執行緒。yield 做的是讓當前執行執行緒回到可執行狀態,以允許具有相同優先順序的其他執行緒獲得執行機會。因此,使用yield 的 目的是讓相同優先順序的執行緒之間能適當的輪轉執行。但是,實際中...