關於java線程優先級的問題

1.優先級的映射。
jvm爲線程提供了大概9個優先級,但是不同的操作系統提供的優先級等級也不同,windows沒到9個,linux比較多,solaris比linux還要多,而且線程或進程的調度是交由操作系統cpu調度策略調度的,如果你是windows操作系統,假如它只提供了兩種優先級,那麼你設置的jvm優先級1~4可能映射到操作系統的1優先級,而5~9映射到操作系統的2優先級,所以1~4的效果是一樣的,5~9的效果是一樣的。
這個問題在深入理解jvm中,多線程優化那部分有介紹!

2.優先級的設置

  1. 線程優先級並不能保證線程的執行順序,優先級高的並不一定先執行,優先級低的也不一定不執行
  2. 不要試圖使用優先級來控制線程的執行順序
    線程優先級的設置,並不能指定線程的運行順序,這個是由操作系統調度的。
    線程優先級不能作爲程序正確性的依賴,因爲操作系統可以完全不用理會JAVA線程對於優先級的設定。——->《JAVA併發編程基礎》
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章