2 qq 19908465 qq_19908465 于 2014.10.01 10:20 提问

简单多线程运行结果不正确

class TestThread1 extends Thread
{
public void run()
{
for(int i=0;i<10;i++)
{
System.out.println("程序正在运行!");
}
}
}
public class TestThread_1
{
public static void main(String[] args)
{
new TestThread1().start();
for(int i=0;i<10;i++)
{
System.out.println("main线程正在运行!");
}
}
}
为什么不能达到线程运行的结果?

运行结果是:
程序正在运行!
程序正在运行!
程序正在运行!
........
main线程正在运行!
main线程正在运行!
main线程正在运行!
main线程正在运行!
....

2个回答

neverbe2
neverbe2   2014.10.01 13:13

这个试了几遍的确有点乱。不过,如果把变量i声明成为类的变量行了。
具体原理还没弄明白,楼主弄明白@一下我,谢谢

tianyutaizi
tianyutaizi   2014.10.16 19:51

要达到你预期的效果先要把main线程阻塞,等子线程run完之后在唤醒main线程

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!