java怎么多线程_java中多线程程序是怎样执行的??

下面程序中执行newNewThread("First");后调用NewThread类的NewThread(Stringth)方法,接着往下执行到t.start();后,为什么不是执行publicvoidrun()方法中的语句进而输出System.out.pr...

下面程序中执行new NewThread("First");后调用NewThread类的NewThread(String th)方法,接着往下执行到t.start();后,为什么不是执行public void run()方法中的语句进而输出System.out.println("测试三");和System.out.println("测试四");后休眠1秒,而是执行System.out.println("测试二");(我是依结果来的)

运行结果为:

New thread:Thread[First,5,main]

测试一

测试二 (“测试二”在这输出不明白,我觉得在这地方输出测试三/四,然后等待1秒

New thread:Thread[Second,5,main]

测试一

测试二

New thread:Thread[Third,5,main]

测试一

测试二

测试三

First:3)

New thread:Thread[Second,5,main]

测试一

测试二

New thread:Thread[Third,5,main]

测试一

测试二

测试三

First:3

package hello;

public class Main

{

public static void main(String[] args)

{

new NewThread("First");

new NewThread("Second");

new NewThread("Third");

try

{

Thread.sleep(10000);

}

catch(InterruptedException e)

{

System.out.println("Mainthread Interrupted");

}

System.out.println("测试五");

System.out.println("Main thread exiting");

}

}

class NewThread implements Runnable

{

String name;

Thread t;

NewThread(String th)

{

name =th;

t=new Thread(this,name);

System.out.println("New thread:"+t);

System.out.println("测试一");

t.start();

System.out.println("测试二");

}

public void run()

{

try

{System.out.println("测试三");

for(int i=3;i>=0;i--)

{

System.out.println(name+":"+i);

System.out.println("测试四");

Thread.sleep(1000);

}

}catch(InterruptedException e)

{

System.out.println(name+"Interrupted");

}

System.out.println(name+"exiting)");

}

}

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值