国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

線程暫停和繼續(xù)實(shí)現(xiàn)

2019-11-08 00:27:06
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
開(kāi)啟一個(gè)子線程來(lái)顯示發(fā)動(dòng)機(jī)上的運(yùn)行時(shí)間,如果發(fā)動(dòng)機(jī)暫停運(yùn)行,那么這個(gè)線程也會(huì)暫停,發(fā)動(dòng)機(jī)又開(kāi)動(dòng)的時(shí)候,線程繼續(xù)開(kāi)啟,數(shù)據(jù)也是連貫著的;
Timer timer=new Timer();TimerTask task=new TimerTask() {    @Override    public void run() {            }};timer.schedule(task,0);
這樣的用法只能停止線程,繼續(xù)將線程運(yùn)行起來(lái)的寫(xiě)法我可能還沒(méi)找到,可能有些細(xì)節(jié)沒(méi)有注意到。
task.run();在task.cancel();運(yùn)行之后,沒(méi)有運(yùn)行起來(lái)。于是就用了加鎖的原理了。
用到加鎖的原理發(fā)動(dòng)機(jī)暫停的時(shí)候,子線程就等待,子線程為DiyThread.wait();發(fā)動(dòng)機(jī)繼續(xù)跑的時(shí)候,子線程就繼續(xù)開(kāi)啟,DiyThread.notify();前提是在主線程上開(kāi)啟該子線程:DiyThread thread=new DiyThread();
PRivate class DiyThread extends Thread {    @Override    public void run() {        while(true){
         if(發(fā)動(dòng)機(jī)暫停){                    
synchronized (thread){    try {        thread.wait();    } catch (InterruptedException e) {        e.printStackTrace();    }}
             }
        }    }}
在接收到發(fā)動(dòng)機(jī)又繼續(xù)開(kāi)動(dòng)的消息后,執(zhí)行:
synchronized (thread){    try {        thread.notify();    } catch (Exception e) {        e.printStackTrace();    }}
有人說(shuō)thread的鎖如果沒(méi)有加載就執(zhí)行thread.wait()就會(huì)報(bào)錯(cuò),我把synchronized (thread)中的thread換成xxxActivity.this,
昨天還不行,今天早上就行了,保險(xiǎn)起見(jiàn),還是都寫(xiě)成thread本身吧。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 利津县| 湖北省| 新闻| 突泉县| 简阳市| 江安县| 潞西市| 仁怀市| 西乌珠穆沁旗| 柳州市| 南溪县| 萝北县| 保亭| 伊川县| 民丰县| 扶风县| 淄博市| 金堂县| 塘沽区| 诸城市| 绥棱县| 金乡县| 兴义市| 长治市| 漳平市| 嘉祥县| 吉林省| 忻州市| 布拖县| 彭州市| 普兰店市| 岳西县| 普兰县| 祁东县| 衡东县| 巫溪县| 桐梓县| 顺昌县| 哈巴河县| 永清县| 杭锦后旗|