1樓:育知同創教育
它們最大本質的區別是:sleep()不釋放同步鎖,wait()釋放同步鎖.
還有用法的上的不同是:sleep(milliseconds)可以用時間指定來使他自動醒過來,如果時間不到你只能呼叫interreput()來強行打斷;wait()可以用notify()直接喚起.
sleep和wait的區別還有:
1。這兩個方法來自不同的類分別是thread和object
2。最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他執行緒可以使用同步控制塊或者方法。
3。wait,notify和notifyall只能在同步控制方法或者同步控制塊裡面使用,而sleep可以在
任何地方使用
synchronized(x)
4。sleep必須捕獲異常,而wait,notify和notifyall不需要捕獲異常
java中的sleep和wait的區別
2樓:千鋒教育
它們最大本質的區別是:sleep()不釋放同步鎖,wait()釋放同步鎖.
還有用法的上的不同是:sleep(milliseconds)可以用時間指定來使他自動醒過來,如果時間不到你只能呼叫interreput()來強行打斷;wait()可以用notify()直接喚起.
sleep和wait的區別還有:
1。這兩個方法來自不同的類分別是thread和object
2。最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他執行緒可以使用同步控制塊或者方法。
3。wait,notify和notifyall只能在同步控制方法或者同步控制塊裡面使用,而sleep可以在
任何地方使用
synchronized(x)
4。sleep必須捕獲異常,而wait,notify和notifyall不需要捕獲異常
3樓:楓調
對於sleep()方法
,我們首先要知道該方法是屬於thread類中的。而wait()方法,則是屬於object類中的。sleep()方法導致了程式暫停執行指定的時間,讓出cpu該其他執行緒,但是他的監控狀態依然保持者,當指定的時間到了又會自動恢復執行狀態。
在呼叫sleep()方法的過程中,執行緒不會釋放物件鎖。
而當呼叫wait()方法的時候,執行緒會放棄物件鎖,進入等待此物件的等待鎖定池,只有針對此物件呼叫notify()方法後本執行緒才進入物件鎖定池準備獲取物件鎖進入執行狀態。
1 /**
2 *
3 */
4 package ***.b510.test;
5 6 /**
7 * java中的sleep()和wait()的區別
8 * @author hongten
9 * @date 2013-12-10
10 */
11 public class testd catch (exception e)
20 new thread(new thread2()).start();
21 }
2223 private static class thread1 implements runnable catch (exception e)
35 system.out.println("thread1 is going on ....");
36 system.out.println("thread1 is over!!!");
37 }
38 }
39 }
4041 private static class thread2 implements runnable catch (exception e)
61 system.out.println("thread2 is going on....");
62 system.out.println("thread2 is over!!!");
63 }
64 }
65 }
66 }
4樓:代作網i站
sleep不會釋放物件鎖,而wait會釋放
java中的sleep和wait的區別
5樓:育知同創教育
sleep()方法是屬於
thread類中的,而wait()方法,則是屬於object類中的。
sleep()方法會使程式暫停執行指定的時間,讓出cpu給其他執行緒,但是他的監控狀態依然保持著,當指定的時間到了又會自動恢復執行狀態。而且在呼叫sleep()方法的過程中,執行緒不會釋放物件鎖。而當呼叫wait()方法的時候,執行緒會放棄物件鎖,進入等待此物件的等待鎖定池,只有針對此物件呼叫notify()方法後本執行緒才進入物件鎖定池準備獲取物件鎖進入執行狀態。
6樓:南風
sleep釋放鎖 wait不釋放鎖,
java中的sleep和wait的區別
7樓:磨礪營
對於sleep()方法,我們首先要知道該方法是屬於thread類中的。而wait()方法,則是屬於object類中的。
sleep()方法導致了程式暫停執行指定的時間,讓出cpu該其他執行緒,但是他的監控狀態依然保持者,當指定的時間到了又會自動恢復執行狀態。
在呼叫sleep()方法的過程中,執行緒不會釋放物件鎖。
而當呼叫wait()方法的時候,執行緒會放棄物件鎖,進入等待此物件的等待鎖定池,只有針對此物件呼叫notify()方法後本執行緒才進入物件鎖定池準備
獲取物件鎖進入執行狀態。
什麼意思呢?
舉個列子說明:
1 /**
2 *
3 */
4 package ***.b510.test;
5 6 /**
7 * java中的sleep()和wait()的區別
8 * @author hongten
9 * @date 2013-12-10
10 */
11 public class testd catch (exception e)
20 new thread(new thread2()).start();
21 }
2223 private static class thread1 implements runnable catch (exception e)
35 system.out.println("thread1 is going on ....");
36 system.out.println("thread1 is over!!!");
37 }
38 }
39 }
4041 private static class thread2 implements runnable catch (exception e)
61 system.out.println("thread2 is going on....");
62 system.out.println("thread2 is over!!!");
63 }
64 }
65 }
66 }
執行效果:
enter thread1...
thread1 is waiting...
enter thread2....
thread2 is sleep....
thread2 is going on....
thread2 is over!!!
thread1 is going on ....
thread1 is over!!!
如果註釋掉**:
1 testd.class.notify();
執行效果:
enter thread1...
thread1 is waiting...
enter thread2....
thread2 is sleep....
thread2 is going on....
thread2 is over!!!
且程式一直處於掛起狀態。
8樓:華清遠見
sleep和wait都是現成裡面的知識
主要區別在於:
sleep表示睡眠,wait表示等待 sleep需要手動喚醒執行緒,而wait不需要手動喚醒等待結束後自動執行
java中的Character和char的區別
character是一個char類,char是一個型別,你可以把一個定義為char的變數放到character中,java5.0之後,自動裝箱拆箱,在這之前要手動的.java中的character和char的區別 character 是 char 的包裝類,char是基礎資料型別,而 charact...
java中,java中的是什麼意思
首先 和 表示的都是位運 算,例如 2 4表示數字2和4的異或位運算,在運算過程中,首先要版把數字權2和4都轉換為二進位制的,2的二進位制為10,4的二進位制為100,再像我們平時算加減法一樣列成豎式運算,同位不同的運算結果為1,相同的為0,這樣,10和100兩個二進位制數的個位都為0,所以運算出的...
java中frame和panel預設的佈局管理器分別是什麼
1 frame是框架,這個是要實現的功能介面的佈局,預設管理器 borderlayout 2 panel是面板,這個是要實現的某個功能模組的具體實現,預設管理器 flowlayout borderlayout是window frame和dialog的預設佈局管理器,在borderlayout佈局管理...