您的位置:首页技术文章
文章详情页

java 测试多线程执行时遇到的疑问?

【字号: 日期:2023-12-11 08:27:23浏览:61作者:猪猪

问题描述

java 测时多线程执行时的疑问?

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();}

}当执行test2方法时,为什么会出现如: 线程1循环0-99,线程2循环0-10然后程序就结束了,这是为什么?线程2没有执行完全,线程3就没有执行到???

问题解答

回答1:

加上 thread.join,主线程才会等待这个线程执行完毕

回答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

我的可以啊,每次都可以

标签: java
相关文章: