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 的 目的是讓相同優先順序的執行緒之間能適當的輪轉執行。但是,實際中...