你的run()方法里面,while (isRunning == true) {}一直在運行,等于把isRunning這個變量給鎖死了,所以main()方法里thread.setRunning(false);其實是賦值失敗的。所以一直在循環(huán)。
站在用戶的角度思考問題,與客戶深入溝通,找到普洱網(wǎng)站設(shè)計與普洱網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋普洱地區(qū)。
是因為main函數(shù)只是程序的入口,是一個程序中多條線程的其中一條。獨立的線程間是互相不影響的,因此即便main線程結(jié)束了,其他線程依然會照常運行。
你的程序啟動兩個線程,一個是main ,一個是你開的線程ADaemon,而ADaemon是以 個守護(hù)線程,也就是說是在后臺運行的。
你這個問題我試了下,因為只循環(huán)10次一個線程搶到10次都跑完了。所以不會出現(xiàn)交替。你可以把10次改成1000次看下效果你就明白了。但是不可以出現(xiàn)在121212這樣交替情況,兩個線程不可能搶到后就當(dāng)好打應(yīng)一次。
Java線程同步 由于同一進(jìn)程的多個線程共享同一片存儲空間,在帶來方便的同時,也帶來了訪問沖突這個嚴(yán)重的問題。Java語言提供了專門機(jī)制以解決這種沖突,有效避免了同一個數(shù)據(jù)對象被多個線程同時訪問。
設(shè)置一個計數(shù)器,每個線程執(zhí)行完后計數(shù)器加一然后查看計數(shù)器是否已滿(任務(wù)都完成),沒有的話就阻塞,是的話就喚醒其他所有線程,大家一起來執(zhí)行下一次任務(wù)。
多線程可以防止這個問題,多條線程同時運行,哪怕一條線程的代碼執(zhí)行讀取數(shù)據(jù)阻塞,也不會影響其它任務(wù)的執(zhí)行。(3)便于建模 這是另外一個沒有這么明顯的優(yōu)點了。
通過while(true)循環(huán)判斷exe.isTerminated()的值,為了防止過多的判斷浪費資源,可設(shè)置線程睡眠Thread.sleep(200);正是由于這個睡眠,所以當(dāng)所有線程池中的線程都執(zhí)行完后,有可能延遲200ms才執(zhí)行結(jié)束了語句。
已經(jīng)開啟所有的子線程 子線程[3]開啟 子線程[7]開啟 子線程[10]開啟 shutdown():啟動一次順序關(guān)閉,執(zhí)行以前提交的任務(wù),但不接受新任務(wù)。
調(diào)用shutdown(),線程池就會不再接受任務(wù)。 然后調(diào)用public boolean awaitTermination(long timeout, TimeUnit unit) 等待所有任務(wù)執(zhí)行完畢,執(zhí)行完畢返回true或者超時返回false。
1,通過Thread.activeCount()方法判斷當(dāng)前線程的線程組中活動線程的數(shù)目,為1時其他線程運行完畢;2,通過java.util.concurrent.Executors中的方法創(chuàng)建一個線程池,用這個線程池來啟動線程。
xx.shutdown xx.isTerminated 如果關(guān)閉后所有任務(wù)都已完成,則返回 true。
文章題目:Java線程代碼執(zhí)行情況 java線程用法
網(wǎng)頁路徑:http://chinadenli.net/article21/dehdojd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、關(guān)鍵詞優(yōu)化、網(wǎng)站改版、App開發(fā)、小程序開發(fā)、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)