java 測(cè)試多線程執(zhí)行時(shí)遇到的疑問(wèn)?
問(wèn)題描述
java 測(cè)時(shí)多線程執(zhí)行時(shí)的疑問(wèn)?
public class Cai implements Runnable {
@Overridepublic synchronized void run() { for (int i = 0; i < 100; i++) {System.out.println(Thread.currentThread().getName()+' : '+i); }}
}
public class Run {
@Testpublic void test2() throws Exception { Cai cai = new Cai(); Thread thread = new Thread(cai); Thread thread2 = new Thread(cai); Thread thread3 = new Thread(cai); thread.setName('線程1'); thread2.setName('線程2'); thread3.setName('線程3'); thread.start(); thread2.start(); thread3.start();}
}當(dāng)執(zhí)行test2方法時(shí),為什么會(huì)出現(xiàn)如: 線程1循環(huán)0-99,線程2循環(huán)0-10然后程序就結(jié)束了,這是為什么?線程2沒有執(zhí)行完全,線程3就沒有執(zhí)行到???
問(wèn)題解答
回答1:加上 thread.join,主線程才會(huì)等待這個(gè)線程執(zhí)行完畢
回答2:import java.io.*;class test { public static void main (String[] args) throws java.lang.Exception {System.out.println('hi');Cai cai = new Cai();Thread thread = new Thread(cai);Thread thread2 = new Thread(cai);Thread thread3 = new Thread(cai);thread.setName('線程1');thread2.setName('線程2');thread3.setName('線程3');thread.start();thread2.start();thread3.start(); }}class Cai implements Runnable { @Override public synchronized void run() {for (int i = 0; i < 100; i++) { System.out.println(Thread.currentThread().getName()+' : '+i);} }}
hi線程1 : 0線程1 : 1線程1 : 2線程1 : 3線程1 : 4線程1 : 5線程1 : 6線程1 : 7線程1 : 8線程1 : 9線程1 : 10線程1 : 11線程1 : 12線程1 : 13線程1 : 14線程1 : 15線程1 : 16線程1 : 17線程1 : 18線程1 : 19線程1 : 20線程1 : 21線程1 : 22線程1 : 23線程1 : 24線程1 : 25線程1 : 26線程1 : 27線程1 : 28線程1 : 29線程1 : 30線程1 : 31線程1 : 32線程1 : 33線程1 : 34線程1 : 35線程1 : 36線程1 : 37線程1 : 38線程1 : 39線程1 : 40線程1 : 41線程1 : 42線程1 : 43線程1 : 44線程1 : 45線程1 : 46線程1 : 47線程1 : 48線程1 : 49線程1 : 50線程1 : 51線程1 : 52線程1 : 53線程1 : 54線程1 : 55線程1 : 56線程1 : 57線程1 : 58線程1 : 59線程1 : 60線程1 : 61線程1 : 62線程1 : 63線程1 : 64線程1 : 65線程1 : 66線程1 : 67線程1 : 68線程1 : 69線程1 : 70線程1 : 71線程1 : 72線程1 : 73線程1 : 74線程1 : 75線程1 : 76線程1 : 77線程1 : 78線程1 : 79線程1 : 80線程1 : 81線程1 : 82線程1 : 83線程1 : 84線程1 : 85線程1 : 86線程1 : 87線程1 : 88線程1 : 89線程1 : 90線程1 : 91線程1 : 92線程1 : 93線程1 : 94線程1 : 95線程1 : 96線程1 : 97線程1 : 98線程1 : 99線程2 : 0線程2 : 1線程2 : 2線程2 : 3線程2 : 4線程2 : 5線程2 : 6線程2 : 7線程2 : 8線程2 : 9線程2 : 10線程2 : 11線程2 : 12線程2 : 13線程2 : 14線程2 : 15線程2 : 16線程2 : 17線程2 : 18線程2 : 19線程2 : 20線程2 : 21線程2 : 22線程2 : 23線程2 : 24線程2 : 25線程2 : 26線程2 : 27線程2 : 28線程2 : 29線程2 : 30線程2 : 31線程2 : 32線程2 : 33線程2 : 34線程2 : 35線程2 : 36線程2 : 37線程2 : 38線程2 : 39線程2 : 40線程2 : 41線程2 : 42線程2 : 43線程2 : 44線程2 : 45線程2 : 46線程2 : 47線程2 : 48線程2 : 49線程2 : 50線程2 : 51線程2 : 52線程2 : 53線程2 : 54線程2 : 55線程2 : 56線程2 : 57線程2 : 58線程2 : 59線程2 : 60線程2 : 61線程2 : 62線程2 : 63線程2 : 64線程2 : 65線程2 : 66線程2 : 67線程2 : 68線程2 : 69線程2 : 70線程2 : 71線程2 : 72線程2 : 73線程2 : 74線程2 : 75線程2 : 76線程2 : 77線程2 : 78線程2 : 79線程2 : 80線程2 : 81線程2 : 82線程2 : 83線程2 : 84線程2 : 85線程2 : 86線程2 : 87線程2 : 88線程2 : 89線程2 : 90線程2 : 91線程2 : 92線程2 : 93線程2 : 94線程2 : 95線程2 : 96線程2 : 97線程2 : 98線程2 : 99線程3 : 0線程3 : 1線程3 : 2線程3 : 3線程3 : 4線程3 : 5線程3 : 6線程3 : 7線程3 : 8線程3 : 9線程3 : 10線程3 : 11線程3 : 12線程3 : 13線程3 : 14線程3 : 15線程3 : 16線程3 : 17線程3 : 18線程3 : 19線程3 : 20線程3 : 21線程3 : 22線程3 : 23線程3 : 24線程3 : 25線程3 : 26線程3 : 27線程3 : 28線程3 : 29線程3 : 30線程3 : 31線程3 : 32線程3 : 33線程3 : 34線程3 : 35線程3 : 36線程3 : 37線程3 : 38線程3 : 39線程3 : 40線程3 : 41線程3 : 42線程3 : 43線程3 : 44線程3 : 45線程3 : 46線程3 : 47線程3 : 48線程3 : 49線程3 : 50線程3 : 51線程3 : 52線程3 : 53線程3 : 54線程3 : 55線程3 : 56線程3 : 57線程3 : 58線程3 : 59線程3 : 60線程3 : 61線程3 : 62線程3 : 63線程3 : 64線程3 : 65線程3 : 66線程3 : 67線程3 : 68線程3 : 69線程3 : 70線程3 : 71線程3 : 72線程3 : 73線程3 : 74線程3 : 75線程3 : 76線程3 : 77線程3 : 78線程3 : 79線程3 : 80線程3 : 81線程3 : 82線程3 : 83線程3 : 84線程3 : 85線程3 : 86線程3 : 87線程3 : 88線程3 : 89線程3 : 90線程3 : 91線程3 : 92線程3 : 93線程3 : 94線程3 : 95線程3 : 96線程3 : 97線程3 : 98線程3 : 99
我的可以啊,每次都可以
相關(guān)文章:
1. javascript - js 有什么優(yōu)雅的辦法實(shí)現(xiàn)在同時(shí)打開的兩個(gè)標(biāo)簽頁(yè)間相互通信?2. css3 - Typecho 后臺(tái)部分表單按鈕在 Chrome 下出現(xiàn)靈異動(dòng)畫問(wèn)題,求解決3. javascript - angular和jquery都用到了$符號(hào),一起用會(huì)不會(huì)沖突?4. javascript - 怎樣限制同一個(gè)瀏覽器不能登錄兩個(gè)賬號(hào)5. 想找個(gè)php大神仿個(gè)網(wǎng)站。6. java - android代碼重構(gòu):如何把a(bǔ)pp設(shè)置里的頭像UI做成通用的?7. java - 新手做一個(gè)安卓視頻播放器,想實(shí)現(xiàn)一個(gè)進(jìn)度條,按鈕那種在視頻下方懸浮的功能,不知道思路!8. javascript - jquery怎么給select option一個(gè)點(diǎn)擊時(shí)觸發(fā)的事件,如圖 如果選擇自定義觸發(fā)一個(gè)時(shí)間?9. nginx配置server模塊的問(wèn)題10. mysql優(yōu)化 - 關(guān)于mysql分區(qū)
