wait()與sleep()的區(qū)別相信很多人都懂了,在這里我就不說了。
           

          wait(),對此對象調(diào)用wait方法導(dǎo)致本線程放棄對象鎖,進(jìn)入等待此對象的等待鎖定池,只有針對此對象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對象鎖定池準(zhǔn)備獲得對象鎖進(jìn)入運(yùn)行狀態(tài)。


          public class ThreadTest {

           
           static int i=0;
           
           public static void main(String[] args) {
            new ThreadTest().setInt(5);
            
            System.out.println(i);

           }
           
           public  void setInt(int i){
            this.i=i;
            try {
             this.wait();
            } catch (InterruptedException e) {
             
             e.printStackTrace();
            }
            
           }

          }


          因此在對上述概念較充分理解后,你就會明白以上這個程序錯在哪里?

          在eclipse編寫和編譯并沒有錯,但當(dāng)運(yùn)行后eclipse提示:IllegalMonitorStateException: current thread not owner

          Exception in thread "main" java.lang.IllegalMonitorStateException: current thread not owner
           at java.lang.Object.wait(Native Method)
           at java.lang.Object.wait(Unknown Source)
           at standlww.project.ThreadTest.setInt(ThreadTest.java:21)
           at standlww.project.ThreadTest.main(ThreadTest.java:12)Exception in thread "main" java.lang.IllegalMonitorStateException: current thread not owner
           at java.lang.Object.wait(Native Method)
           at java.lang.Object.wait(Unknown Source)
           at standlww.project.ThreadTest.setInt(ThreadTest.java:21)
           at standlww.project.ThreadTest.main(ThreadTest.java:12)

          原因在于對此對象調(diào)用wait方法導(dǎo)致本線程放棄對象鎖對此對象調(diào)用wait方法導(dǎo)致本線程放棄對象鎖,而 public  void setInt(int i)方法沒有加鎖,是個不需要加鎖就能運(yùn)行得方法。

          posted on 2008-10-20 21:20 李威威 閱讀(1391) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
           
          主站蜘蛛池模板: 汝州市| 连平县| 黑山县| 龙门县| 庆云县| 堆龙德庆县| 郧西县| 聂荣县| 图们市| 海口市| 乌恰县| 海安县| 齐齐哈尔市| 扎囊县| 谷城县| 建瓯市| 肇州县| 波密县| 水城县| 荥阳市| 汤原县| 尉犁县| 河南省| 无锡市| 普格县| 梁山县| 贵南县| 英山县| 鄂温| 梁河县| 岱山县| 彭山县| 定南县| 武定县| 张家港市| 东平县| 远安县| 海阳市| 双柏县| 綦江县| 云南省|