Java是一門面向對象編程語言,在多線程編程中,wait(0)和yield是很常用的方法。
wait(0)是一個高級用法,它用來使得當前線程等待一段時間,指定的時間到達時,線程會被喚醒,繼續執行。而wait(0)是等待時間為0,即只要當前線程再次獲得CPU資源,就會馬上繼續執行。下面是wait(0)的使用示例:
synchronized(obj) { while(!condition) { obj.wait(0); } //執行相關操作 }
在這段代碼中,線程會在wait(0)處等待,只要obj的狀態滿足條件condition,當前線程就會被喚醒,并繼續往下執行。
與wait(0)相比,yield是一個簡單的方法,意為“放棄CPU執行權”,讓系統重新調度線程執行。下面是yield的使用示例:
public void run() { while(condition) { //執行相關操作 Thread.yield(); } }
這段代碼中,線程會循環執行操作,并在每次操作結束后使用yield方法,讓出CPU執行權給其他線程。
需要注意的是,使用wait(0)和yield方法都需要謹慎,不當的使用可能會導致線程等待時間過長或者CPU浪費過多。
上一篇html畫愛心代碼