本質區別:thread.sleep()只讓出cpu,不讓出lock;object.wait()既讓出cpu,又讓出lock;
1 thread.sleep()可以在任何地方使用,object.wait()必須在synchronized方法或者synchronized塊中使用(必須先獲得鎖,才能釋放鎖)
2 sleep是thread類的方法,wait是object類的方法
package com.mall.controllor.alene;
/** * created by 60341 on 2020/3/18.
*/public class waitsleepdemo catch (interruptedexception e) }}
}).start();
try catch (interruptedexception e)
new thread(new runnable() catch (interruptedexception e) }}
}).start();
/*輸出:
thread a is waiting for the lock
thread a get lock
thread b is waiting for the lock
thread a do wait method
thread b get lock
thread b is sleeping 10 ms
thread b is done
thread a is done*/
}}
sleep和wait的區別
關鍵字 sleep wait 1 這兩個方法來自不同的類分別是thread和object 2 最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他執行緒可以使用同步控制塊或者方法。3 wait,notify和notifyall只能在同步控制方法或者同步控制塊裡面使用,而sleep可以在...
sleep 和 wait的區別
1 這兩個方法來自不同的類分別是,sleep來自thread類,和wait來自object類。sleep是thread的靜態類方法,誰呼叫的誰去睡覺,即使在a執行緒裡呼叫了b的sleep方法,實際上還是a去睡覺,要讓b執行緒睡覺要在b的 中呼叫sleep。2 最主要是sleep方法沒有釋放鎖,而wa...
sleep和wait的區別
1 這兩個方法來自不同的類分別是,sleep來自thread類,和wait來自object類。sleep是thread的靜態類方法,誰呼叫的誰去睡覺,即使在a執行緒裡呼叫了b的sleep方法,實際上還是a去睡覺,要讓b執行緒睡覺要在b的 中呼叫sleep。2 最主要是sleep方法沒有釋放鎖,而wa...