注册 登录
编程论坛 JAVA论坛

一个小小的多线程问题

msl12 发布于 2015-10-03 14:08, 519 次点击
代码如下:
------------------------------------------------------------------------------------------
class A implements Runnable {   
    public void run() {
        for (int i=1; i<=10; ++i) {
            System.out.println(Thread.currentThread().getName()+" : "+i);
        }
    }
}

public class Test2 {
    public static void main(String[] agrs) {
        A a=new A();
        Thread th1=new Thread(a, "yoo");
        System.out.println("yoo是否存活--"+th1.isAlive());
        th1.start();
        System.out.println("yoo是否存活--"+th1.isAlive());//为什么th1这个线程启动的情况下,经过多次测试发现都是先输出这句话,然后才开始th1.run()?
        a.run();
        System.out.println("yoo是否存活--"+th1.isAlive());
    }
}
2 回复
#2
林月儿2015-10-03 14:52
以下是引用msl12在2015-10-3 14:08:54的发言:

代码如下:
------------------------------------------------------------------------------------------
class A implements Runnable {   
    public void run() {
        for (int i=1; i<=10; ++i) {
            System.out.println(Thread.currentThread().getName()+" : "+i);
        }
    }
}

public class Test2 {
    public static void main(String[] agrs) {
        A a=new A();
        Thread th1=new Thread(a, "yoo");
        System.out.println("yoo是否存活--"+th1.isAlive());
        th1.start();
        System.out.println("yoo是否存活--"+th1.isAlive());//为什么th1这个线程启动的情况下,经过多次测试发现都是先输出这句话,然后才开始th1.run()?
        a.run();                                //这种写法少见
        System.out.println("yoo是否存活--"+th1.isAlive());
    }
}

线程的时间片分配涉及优先级以及带有一定随机性,尽量不要通过运行结果逆推你认为的运行逻辑
#3
msl122015-10-03 15:55
回复 2楼 林月儿
好吧,线程这块感觉真乱,谢啦
1