本篇內(nèi)容主要講解“為什么要讓run()方法自動開啟”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“為什么要讓run()方法自動開啟”吧!
成都創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的10年時間我們累計服務(wù)了上千家以及全國政企客戶,如成都茶藝設(shè)計等企業(yè)單位,完善的項目管理流程,嚴(yán)格把控項目進(jìn)度與質(zhì)量監(jiān)控加上過硬的技術(shù)實(shí)力獲得客戶的一致贊賞。
cpu有隨機(jī)性,線程搶到cpu,才能干活,所以run()方法必須通過strat()方法自動啟動,這樣cpu就獲得了一個信號,知道該線程可以搶占cpu資源;
手動運(yùn)行垃圾回收器
原理:當(dāng)執(zhí)行g(shù)c是,會觸發(fā)垃圾回收機(jī)制,開啟垃圾回收線程,執(zhí)行finalize方法
cpu的特性:多個線程之間是搶cpu的關(guān)系,cpu有隨機(jī)性
主函數(shù)結(jié)束,主任務(wù)區(qū)結(jié)束,主線程隨著任務(wù)的結(jié)束而結(jié)束,線程隨著任務(wù)的開始而開始
創(chuàng)建線程
默認(rèn)情況下,主線程和垃圾回收線程都是由系統(tǒng)創(chuàng)建
①用Thread創(chuàng)建線程對象
Thread thread1=new Thread(); //只是創(chuàng)建Thread對象
thread1.start(); //開啟線程
Thread類里的run()方法默認(rèn)是空的,所以start()方法執(zhí)行結(jié)果
所以需要繼承Thread類 重寫run()方法
若run()方法直接被手動調(diào)用,run()對應(yīng)的線程跟調(diào)用該方法所在的線程對應(yīng)
Thread類實(shí)現(xiàn)了Runnable接口,Runnable接口里面只有run()方法,Thread類里實(shí)現(xiàn)的run()方法也只是空方法體,需要被繼承去重寫
創(chuàng)建一個A類實(shí)現(xiàn)Runnable接口,重寫run()方法
A a=new A();
Thread to=new Thread(A);
to.start();
給某個方法的線程沖突部分加鎖
鎖的條件
①鎖必須是對象
②要被所有的線程共享
同步代碼塊
synchronized(this){代碼塊}
同步函數(shù)
非靜態(tài) public synchronized void xxx(){} //默認(rèn)的鎖是this synchronized(this)
靜態(tài) public synchronized static void xxx(){} //默認(rèn)的鎖是當(dāng)前類的字節(jié)碼文件 synchronized(xx.class)
notify(終止線程休眠) wait(線程休眠,不可以搶占cpu)
wait()-->必須在同步環(huán)境中使用,必須使用鎖調(diào)用,執(zhí)行這行代碼,對應(yīng)的是哪個線程,就
notify()-->喚醒的是同一把鎖下的線程,
Lock(顯示同步) 替換 Synchronized(隱式同步)
//創(chuàng)建鎖對象 Lock lock=new ReentrantLock();
//用于生產(chǎn)任務(wù)的Condition
Condition proCon = lock.newCondition();
//用于結(jié)束任務(wù)的condition
Condition conCon = lock.newCondition();
//開啟鎖
lock.lock();
proCon.await();
conCon.signal();
conCon.await();
proCon.signal();
//關(guān)閉鎖
lock.unlock();
守護(hù)線程
當(dāng)程序調(diào)用setDaemon方法時,并且將參數(shù)設(shè)置成true,當(dāng)前線程就變成了了守護(hù)線程,只要主線程結(jié)束,該守護(hù)線程就會結(jié)束,這個方法一定要在start前調(diào)用
join()方法,優(yōu)先級高于主線程,主線程會等當(dāng)前的線程執(zhí)行完后再去執(zhí)行;該方法是在start之后。
到此,相信大家對“為什么要讓run()方法自動開啟”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
文章標(biāo)題:為什么要讓run()方法自動開啟
分享網(wǎng)址:http://bm7419.com/article22/psdjjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、小程序開發(fā)、動態(tài)網(wǎng)站、商城網(wǎng)站、網(wǎng)站策劃、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)