這裡只是提一些值得注意的點,具體深入還需要看相關的書籍和資料
執行緒執行有6個狀態:new、runnable、waiting、time_waited、blocked、terminated
只有synchronized方法和synchronized方法塊才會進入blocked狀態,其他的鎖,如reentrantlock等進入的都是waiting或time_waited狀態,因為呼叫的是locksupport這個包中的**。
yield()讓出cpu資源,是讓給和yield相同優先順序的執行緒
wait()和sleep()
wait()是object中的方法,例項方法,呼叫時必須使用例項化呼叫,會讓出cpu資源和鎖,使得該執行緒進入等待池中。wait必須在同步方法或同步塊中呼叫,必須是已經獲得物件鎖。
sleep()是thread中的靜態資源,可以直接使用,任何地方都可以使用,只會讓出cpu資源。
守護執行緒daemon
設定守護執行緒應該先於start()方法,否則當作正常的使用者執行緒執行。
守護執行緒在退出時不會執行finally中的**,所以將釋放資源放入finally塊中的行為是不安全的。
java中一些基礎知識點
運算子 注意 整數被0除將會產生乙個異常,浮點數被0除會得到無窮大或nan 關係運算子 expression1 expression2 第乙個表示式expression1為假時,不必計算第二個表示式 x 0 1 x 此方式可避免後乙個表示式被零除 位運算子 與 或 異或 非 通過2的冪次方和 運算可...
Java使用Thread時的一些注意點
新建執行緒很簡單,只要使用new關鍵字建立乙個執行緒物件,並且將它start 起來即可 thread t1 new thread t1.start 注意 下面的 也能通過編譯和正常執行,但是卻沒有新建乙個執行緒 thread t2 new thread t2.run 這只是簡單的普通方法呼叫,所以沒...
QT Creator 中一些要注意的地方
5.3 拖放操作 1.執行程式,拖放的時候要拖放到主視窗上,而不是text edit部件上,否則只顯示檔案路徑,而不是檔案內容 2.拖放的時候,會顯示中文亂碼 修改一下讀取檔案的處理函式 void mainwindow dropevent qdropevent event 對於中文顯示亂碼用一行處理...