1. 程式人生 > >java中什麽是Yield給出一個例子

java中什麽是Yield給出一個例子

process ron rac 占用 itl its 繼續 並行 code

馬克-to-win:yield英文是屈服投降的意思。 (視頻下載) (全部書籍)當前線程投降就是當前線程希望釋放CPU的自己的占用權,( 但系統可以忽略它這個請求。)參見: https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#yield%28%29 其中有這麽句話: A hint to the scheduler that the current thread is willing to yield its current use of a processor. The scheduler is free to ignore this hint.這樣的話當前線程yield時,有時雖然它自己想讓別的線程執行,但系統出於優化考慮,可能還是會讓當前的線程繼續執行。這樣的話,yield就會有一種不可控的效果,所以並行編程的最佳實踐建議少用yield。

例:1.5.5-本章源碼



class ThreadMark_to_win extends Thread {
private String s;
public ThreadMark_to_win(String s) {
this.s = s;
}
public void run() {
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
System.out.println(s);
/*當前線程希望釋放CPU的自己的占用權,( 但系統可以忽略。) */
Thread.yield();
}
}

。。。。。。。。。。。。。。。。。
詳情請進:http://www.mark-to-win.com/index.html?content=JavaBeginner/javaUrl.html&chapter=JavaBeginner/JavaBeginner6_web.html#Yield

java中什麽是Yield給出一個例子