java多執行緒之(yield)

2021-07-09 13:48:46 字數 558 閱讀 4079

yield方法會讓當前執行緒交出cpu許可權,讓cpu去執行其他的執行緒。它跟sleep方法類似,同樣不會釋放鎖。但是yield不能控制具體的交出cpu的時間, 另外,yield方法只能讓擁有相同優先順序的執行緒有獲取cpu執行時間的機會。 注意,呼叫yield方法並不會讓執行緒進入阻塞狀態,而是讓執行緒重回就緒狀態, 它只需要等待重新獲取cpu執行時間,這一點是和sleep方法不一樣的。具體請參照一下例項:

public class testyield  

class mythread extends thread catch (exception e)

i++;

system.out.println("i:"+i);}}

}}

輸出結果:

i:11

執行緒thread-0進入就緒狀態

執行緒thread-0就緒結束,已獲得cpu可以繼續執行

i:12

i:13

執行緒thread-1進入就緒狀態

執行緒thread-1就緒結束,已獲得cpu可以繼續執行

i:14

JAVA多執行緒之 執行緒池

執行緒池顧名思義,就是乙個放置執行緒的池子。就跟資料庫連線池差不多。執行緒池通過對併發執行緒的控制,能有效的節省系統資源的浪費,提高系統的效能。學習執行緒池,先了解一下執行緒池的乙個基本結構 executor是乙個介面,其中只有乙個方法,就是execute方法。所以executor實際就是乙個執行緒...

Java多執行緒之執行緒安全

當多個執行緒訪問某乙個類 物件或方法時 這個類始終都能表現出正確的行為,那麼這個類 物件或方法 就是執行緒安全的。public class mythread extends thread public static void main string args 結果如下 t1正在執行 4 t1正在執行...

java 多執行緒 yield方法的意義

thread.yield 方法 使當前執行緒從執行狀態 執行狀態 變為可執行態 就緒狀態 cpu會從眾多的可執行態裡選擇,也就是說,當前也就是剛剛的那個執行緒還是有可能會被再次執行到的,並不是說一定會執行其他執行緒而該執行緒在下一次中不會執行到了。用了yield方法後,該執行緒就會把cpu時間讓掉,...