亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Object.wait()與Object.notify()的用法詳細解析

2019-11-26 15:58:59
字體:
來源:轉載
供稿:網友

wait、notify和notifyAll方法是Object類的final native方法。所以這些方法不能被子類重寫,Object類是所有類的超類,因此在程序中有以下三種形式調用wait等方法。

復制代碼 代碼如下:

wait();//方式1:
this.wait();//方式2:
super.wait();//方式3

void notifyAll()
解除所有那些在該對象上調用wait方法的線程的阻塞狀態。該方法只能在同步方法或同步塊內部調用。如果當前線程不是鎖的持有者,該方法拋出一個IllegalMonitorStateException異常。

void notify()
隨機選擇一個在該對象上調用wait方法的線程,解除其阻塞狀態。該方法只能在同步方法或同步塊內部調用。如果當前線程不是鎖的持有者,該方法拋出一個IllegalMonitorStateException異常。

void wait()
導致線程進入等待狀態,直到它被其他線程通過notify()或者notifyAll喚醒。該方法只能在同步方法中調用。如果當前線程不是鎖的持有者,該方法拋出一個IllegalMonitorStateException異常。

void wait(long millis)和void wait(long millis,int nanos)
導致線程進入等待狀態直到它被通知或者經過指定的時間。這些方法只能在同步方法中調用。如果當前線程不是鎖的持有者,該方法拋出一個IllegalMonitorStateException異常。

Object.wait()和Object.notify()和Object.notifyall()必須寫在synchronized方法內部或者synchronized塊內部,這是因為:這幾個方法要求當前正在運行object.wait()方法的線程擁有object的對象鎖。即使你確實知道當前上下文線程確實擁有了對象鎖,也不能將object.wait()這樣的語句寫在當前上下文中。如:

復制代碼 代碼如下:

package edu.sjtu.erplab.ObjectTest;

class A
{
    public synchronized void printThreadInfo() throws InterruptedException
    {
        Thread t=Thread.currentThread();
        System.out.println("ThreadID:"+t.getId()+", ThreadName:"+t.getName());
    }
}

 

public class ObjectWaitTest {
    public static void main(String args[])
    {
        A a=new A();
        //因為printThreadInfo()方法拋出InterruptedException異常,所以這里必須使用try-catch塊
        try {
            a.printThreadInfo();
            a.wait();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}


程序運行會報錯,運行結果如下:
ThreadID:1, ThreadName:main
Exception in thread "main" java.lang.IllegalMonitorStateException
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at edu.sjtu.erplab.ObjectTest.ObjectWaitTest.main(ObjectWaitTest.java:24)

正確的寫法應該是
復制代碼 代碼如下:

package edu.sjtu.erplab.ObjectTest;

class A
{
    public synchronized void printThreadInfo() throws InterruptedException
    {
        Thread t=Thread.currentThread();
        System.out.println("ThreadID:"+t.getId()+", ThreadName:"+t.getName());
//        this.wait();//一直等待
        this.wait(1000);//等待1000ms
//        super.wait(1000);
    }
}

 

public class ObjectWaitTest {
    public static void main(String args[])
    {
        A a=new A();
        //因為printThreadInfo()方法拋出InterruptedException異常,所以這里必須使用try-catch塊
        try {
            a.printThreadInfo();
            //a.wait();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        Thread t=Thread.currentThread();
        System.out.println("ThreadID:"+t.getId()+", ThreadName:"+t.getName());
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲天堂第二页| www亚洲欧美| 国产精品久久久久91| 欧美高清视频免费观看| 国产精品亚洲欧美导航| 欧美日韩福利视频| 国产亚洲激情视频在线| 国产精品人人做人人爽| 国产香蕉97碰碰久久人人| 成人乱人伦精品视频在线观看| 色系列之999| 国产精品精品国产| 性色av一区二区三区在线观看| 欧美极品第一页| 5566成人精品视频免费| 欧美视频13p| 69久久夜色精品国产69| 69视频在线播放| 日韩中文有码在线视频| 国内精品免费午夜毛片| 成人网在线观看| 欧美一级视频免费在线观看| 国产欧美一区二区三区久久人妖| 久久免费视频网站| 亚洲欧美色婷婷| 欧美精品在线观看91| 国产一区二区欧美日韩| 欧美中文字幕视频在线观看| 精品久久久久国产| 日韩欧美亚洲范冰冰与中字| 91欧美视频网站| 日韩av在线高清| 中文字幕av一区二区三区谷原希美| 欧美成人高清视频| 亚洲最大成人在线| 欧美国产精品人人做人人爱| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品99久久久久久白浆小说| 欧美大片欧美激情性色a∨久久| 国产精品久久婷婷六月丁香| 热久久视久久精品18亚洲精品| 亚洲国产精品电影| 日韩av中文在线| 久久视频中文字幕| 亚洲最大的网站| 宅男66日本亚洲欧美视频| 黑人巨大精品欧美一区二区| 亚洲色图综合网| 欧美伊久线香蕉线新在线| 日韩中文理论片| 91精品国产九九九久久久亚洲| 欧美另类在线播放| 日韩国产欧美精品一区二区三区| 欧美成人第一页| 日韩经典中文字幕| 国产三级精品网站| 国产精品最新在线观看| 国产成人小视频在线观看| 91精品在线国产| 国产精品极品尤物在线观看| 一本色道久久88综合日韩精品| 欧美日韩中文在线| 亚州av一区二区| 成人久久18免费网站图片| 九九热这里只有在线精品视| 国产精品亚洲网站| 98精品国产高清在线xxxx天堂| 日韩av毛片网| 主播福利视频一区| 久久久久久久999| 亚洲a∨日韩av高清在线观看| 日本亚洲欧美三级| 亚洲一区免费网站| 国产精品一区二区久久久| 欧美wwwxxxx| 77777少妇光屁股久久一区| 国产在线精品成人一区二区三区| 国产盗摄xxxx视频xxx69| 国产精品高潮呻吟久久av无限| 国语自产精品视频在线看一大j8| 欧美国产日韩一区二区在线观看| 伊人一区二区三区久久精品| 亚洲精品国产美女| 日韩在线观看免费网站| 日本久久久久亚洲中字幕| 日韩综合视频在线观看| 欧美日韩亚洲一区二区| 色综合91久久精品中文字幕| 亚洲视频综合网| 国产日韩欧美综合| 国产午夜精品视频| 国产精品一区久久| 亚洲欧美综合精品久久成人| 热re99久久精品国产66热| 久久91精品国产91久久跳| 日韩视频永久免费观看| 欧美成人精品不卡视频在线观看| 欧美中文在线观看国产| 国产91九色视频| 国产中文日韩欧美| 欧美午夜女人视频在线| 精品二区三区线观看| 亚洲小视频在线观看| 性色av一区二区三区免费| 久久久国产成人精品| 欧美在线视频a| 日本91av在线播放| 欧美成在线视频| 亚洲精品日韩欧美| 欧美在线视频播放| 久久精品中文字幕一区| 久久精品在线视频| 狠狠做深爱婷婷久久综合一区| 欧美激情一区二区三区在线视频观看| 久久人人97超碰精品888| 国内精品久久久久| 91青草视频久久| 精品中文视频在线| 91精品国产综合久久香蕉| 4444欧美成人kkkk| 国产一区二区日韩| 国产一区二区三区日韩欧美| 中文欧美日本在线资源| 奇米4444一区二区三区| 91精品国产自产在线老师啪| 色999日韩欧美国产| 亚洲美女激情视频| 成人97在线观看视频| 欧美孕妇与黑人孕交| 国产精品男女猛烈高潮激情| 国产日韩中文字幕在线| 亚洲性无码av在线| 色偷偷偷亚洲综合网另类| 日韩欧美aaa| 亚洲精品久久久久国产| 亚洲欧美日韩久久久久久| 欧美黑人xxxx| 欧美精品激情blacked18| 久久久视频在线| 国内精品一区二区三区| 庆余年2免费日韩剧观看大牛| 夜夜嗨av一区二区三区免费区| 欧美电影免费观看网站| 国产第一区电影| 91精品国产综合久久香蕉最新版| 伊人伊成久久人综合网站| 亚洲精品视频免费| 韩日欧美一区二区| 成人444kkkk在线观看| 亚洲激情视频网站| 色无极影院亚洲| 韩国欧美亚洲国产| 国产精品日韩av| 久久久久久高潮国产精品视| 亚洲精品网站在线播放gif| 日本精品久久久久影院| 国产最新精品视频| 国产精品国产三级国产专播精品人| 狠狠色香婷婷久久亚洲精品| 国产成人亚洲精品| 欧美极品少妇xxxxⅹ裸体艺术| 成人亚洲综合色就1024| 国产精品成久久久久三级| 欧美不卡视频一区发布|