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

首頁 > 編程 > Java > 正文

java多線程編程之從線程返回數據的兩種方法

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

一、通過類變量和方法返回數據

使用這種方法返回數據需要在調用start方法后才能通過類變量或方法得到數據。讓我們先來看看例程2-13會得到什么結果。

復制代碼 代碼如下:

package mythread;

public class MyThread extends Thread
{
    private String value1;
    private String value2;

    public void run()
    {
        value1 = "通過成員變量返回數據";
        value2 = "通過成員方法返回數據";
    }
    public static void main(String[] args) throws Exception
    {
        MyThread thread = new MyThread();
        thread.start();
        System.out.println("value1:" + thread.value1);
        System.out.println("value2:" + thread.value2);
    }
}



運行上面的代碼有可能輸出如下的結果:
復制代碼 代碼如下:

value1:null
value2:null

從上面的運行結果看很不正常。在run方法中已經對value1和value2賦了值,而返回的卻是null。發生這種情況的原因是調用start方法后就立刻輸出了value1和value2的值,而這里run方法還沒有執行到為value1和value2賦值的語句。要避免這種情況的發生,就需要等run方法執行完后才執行輸出value1和value2的代碼。因此,我們可以想到使用sleep方法將主線程進行延遲,如可以在thread.start()后加一行如下的語句:
sleep(1000);
這樣做可以使主線程延遲1秒后再往下執行,但這樣做有一個問題,就是我們怎么知道要延遲多長時間。在這個例子的run方法中只有兩條賦值語句,而且只創建了一個線程,因此,延遲1秒已經足夠,但如果run方法中的語句很復雜,這個時間就很難預測,因此,這種方法并不穩定。
我們的目的就是得到value1和value2的值,因此,只要判斷value1和value2是否為null。如果它們都不為null時,就可以輸出這兩個值了。我們可以使用如下的代碼來達到這個目的:

復制代碼 代碼如下:

while (thread.value1 == null || thread.value2 == null);

使用上面的語句可以很穩定地避免這種情況發生,但這種方法太耗費系統資源。大家可以設想,如果run方法中的代碼很復雜,value1和value2需要很長時間才能被賦值,這樣while循環就必須一直執行下去,直到value1和value2都不為空為止。因此,我們可以對上面的語句做如下的改進:

復制代碼 代碼如下:

while (thread.value1 == null || thread.value2 == null)
    sleep(100);

在while循環中第判斷一次value1和value2的值后休眠100毫秒,然后再判斷這兩個值。這樣所占用的系統資源會小一些。
上面的方法雖然可以很好地解決,但Java的線程模型為我們提供了更好的解決方案,這就是join方法。在前面已經討論過,join的功能就是使用線程從異步執行變成同步執行。當線程變成同步執行后,就和從普通的方法中得到返回數據沒有什么區別了。因此,可以使用如下的代碼更有效地解決這個問題:

復制代碼 代碼如下:

thread.start();
thread.join();

在thread.join()執行完后,線程thread的run方法已經退出了,也就是說線程thread已經結束了。因此,在thread.join()后面可以放心大膽地使用MyThread類的任何資源來得到返回數據。

二、通過回調函數返回數據
其實這種方法已經在《向線程傳遞數據的三種方法》中介紹了。在《向線程傳遞數據的三種方法》一文的例子中通過Work類的process方法向線程中傳遞了計算結果,但同時,也通過process方法從線程中得到了三個隨機數。因此,這種方法既可以向線程中傳遞數據,也可以從線程中獲得數據。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美日韩中文字幕在线| 日韩av免费一区| 国产精品一区二区三区久久| 1769国内精品视频在线播放| 欧美高清视频一区二区| 91中文字幕在线观看| 亚洲精品久久久久久下一站| 亚洲欧美中文日韩在线v日本| 国产ts一区二区| 高清亚洲成在人网站天堂| 少妇高潮 亚洲精品| 欧美疯狂性受xxxxx另类| 成人免费看黄网站| 久久在线免费视频| 日韩中文在线中文网在线观看| 中文字幕亚洲综合久久| 亚洲天堂男人的天堂| 国产精品男人爽免费视频1| 91手机视频在线观看| 欧美最顶级的aⅴ艳星| 亚洲午夜精品久久久久久久久久久久| 亚洲人成电影网站色www| 日韩电影中文字幕一区| 国产日韩精品电影| 欧美xxxx做受欧美.88| 国产伦精品一区二区三区精品视频| 日本久久久久亚洲中字幕| 亚洲国产中文字幕在线观看| 亚洲a区在线视频| 成人黄色片网站| 亚洲性线免费观看视频成熟| 97超碰蝌蚪网人人做人人爽| 在线成人激情黄色| 2018中文字幕一区二区三区| 亚洲社区在线观看| 亚洲高清av在线| 国产成人久久精品| 亚洲网在线观看| 亚洲国产高清高潮精品美女| 午夜精品久久久久久久白皮肤| 亚洲国产精品专区久久| 懂色av一区二区三区| 久久视频在线看| 久久久黄色av| 欧美日韩亚洲一区二区三区| 亚洲午夜精品久久久久久性色| 中国人与牲禽动交精品| 日韩成人网免费视频| 亚洲自拍欧美另类| 在线精品播放av| 精品久久久久久中文字幕大豆网| 永久免费看mv网站入口亚洲| 久久久精品电影| wwwwwwww亚洲| 日韩av免费在线观看| 日韩欧美综合在线视频| 国内自拍欧美激情| 日韩免费观看网站| 欧美日韩激情小视频| 91av视频在线观看| 欧美一区二区色| 亚洲美女av电影| 亚洲人成电影在线播放| 亚洲精品成人av| 国产精品久久久一区| 国产一区二区在线免费视频| 国产成人精品最新| 国产suv精品一区二区三区88区| 色悠悠久久88| 久久成人18免费网站| 深夜福利一区二区| 97在线免费观看| 欧美大胆a视频| 成人福利在线视频| 国产精品一区av| 欧美在线精品免播放器视频| 欧美日韩在线观看视频| 久久久久免费精品国产| 国产视频一区在线| 日韩在线一区二区三区免费视频| 欧洲永久精品大片ww免费漫画| 日韩精品中文在线观看| 国产精品成人一区二区| 九九精品视频在线| 亚洲成人网在线| 欧美性xxxxhd| 国产视频福利一区| 欧美激情网友自拍| 国语自产精品视频在免费| 91高清视频免费| 亚洲美女又黄又爽在线观看| 免费av一区二区| 亚洲国产精品久久91精品| 97人洗澡人人免费公开视频碰碰碰| 日韩av在线免费观看一区| 亚洲国产精彩中文乱码av在线播放| 国产成人一区二区三区| 九九视频这里只有精品| 国产精品久久久久影院日本| 亚洲人精选亚洲人成在线| 国产99久久精品一区二区 夜夜躁日日躁| 国产精品成人免费视频| 日韩在线视频网| 欧洲s码亚洲m码精品一区| 亚洲免费福利视频| 91久久精品久久国产性色也91| 久久久久国产一区二区三区| 国产91精品视频在线观看| 精品人伦一区二区三区蜜桃网站| 国产精品久久久久久久久久久久久久| 日日狠狠久久偷偷四色综合免费| 国产999精品| 狠狠色香婷婷久久亚洲精品| 国内精品久久久| 久久久女人电视剧免费播放下载| 国产一区二区三区四区福利| 中文字幕在线精品| www.日本久久久久com.| 国产精品免费小视频| 国模吧一区二区| 亚洲成av人乱码色午夜| 国产精品入口尤物| 一本大道久久加勒比香蕉| 在线免费观看羞羞视频一区二区| 亚洲码在线观看| 日韩大胆人体377p| 热99久久精品| 国产精品99久久久久久白浆小说| 久久久久久久电影一区| 在线观看国产成人av片| 国产suv精品一区二区三区88区| 国产精品人人做人人爽| 亚洲欧洲国产伦综合| 久久五月天色综合| 91国内在线视频| 久久99青青精品免费观看| 成人午夜激情网| 欧美一区二区三区免费视| www国产亚洲精品久久网站| 国产97在线视频| 久久久亚洲精选| 在线观看欧美成人| 欧美激情视频一区二区| 日韩一级裸体免费视频| 夜夜嗨av一区二区三区免费区| 久久天天躁狠狠躁老女人| 精品av在线播放| 亚洲a中文字幕| 亚洲视频一区二区三区| 欧美午夜视频在线观看| 国产成人精品999| 91最新在线免费观看| 色综合91久久精品中文字幕| 久久99亚洲热视| 国产亚洲免费的视频看| 久久人人爽人人爽爽久久| 国模精品系列视频| 国产成人亚洲综合| 久久免费高清视频| 亚洲精品日韩欧美| 日韩国产欧美精品一区二区三区| 欧美一乱一性一交一视频| 欧美色欧美亚洲高清在线视频| 国产亚洲欧洲高清|