Topic: main 方法执行的。(thread)

  Print this page

1.main 方法执行的。(thread) Copy to clipboard
Posted by: develop8
Posted on: 2006-06-23 07:38

/*从这里看到在main 方法里,语句的执行不是把把当前语句执行
完之后,执行下一个语句。
有反驳意见的话,请回复。
在这个程序按顺序应该是执行完,第一个thread之后,执行
a.m();但是系统是先执行了这个语句,然后执行了thread,
可能是方法的调用比thread启动更快的原因吧。
再后面语句就没什么错误了,正常按顺序执行了。

*/

class test6{
public static void main(String[]args){
final test6 a =new test6();
new Thread(new Runnable(){
public void run(){
a.m2();
for(int i=0;i<10;i++)
System.out.println("Soft");}
}
).start();
a.m();

for(int i=0;i<6;i++)
System.out.println("hello this is statements in main.");
new Thread(new Runnable(){
public void run(){
System.out.println("this is Thread-2");}}).start();
}
void m(){
try{for(int i=0;i<5;i++)
System.out.println("this is m");
Thread.sleep(3000); //拖延时间是为了看在这时候,Thread是否运行?
}catch(InterruptedException e){}
System.out.println("hello this is Methods call.");
}
void m2(){
System.out.println("hello this is Thread");}
}

2.Re:main 方法执行的。(thread) [Re: develop8] Copy to clipboard
Posted by: fighttodeath
Posted on: 2006-06-24 21:54

线程在系统中执行,是走走停停的,具有异步性。
不能确定是哪个线程先开始,哪个后开始吧。
应该是主线程最先开始,至于其他线程哪个先哪个后就不一定了。。

3.Re:main 方法执行的。(thread) [Re: develop8] Copy to clipboard
Posted by: develop8
Posted on: 2006-06-25 06:39

应该是主线程最先开始:
你说的主线程指的是main线程吗?

4.Re:main 方法执行的。(thread) [Re: develop8] Copy to clipboard
Posted by: cxp108
Posted on: 2006-06-29 09:16

当你调用Thread的start()方法的时候,是告诉JVM:“你可以启动线程了”,但具体什么时候
启动(也就是什么时候运行run())完全是JVM自行控制,你无法得知。

5.Re:main 方法执行的。(thread) [Re: develop8] Copy to clipboard
Posted by: max198231
Posted on: 2006-06-30 20:12

这涉及到线程的优先级问题。当然是main默认优先级在前

6.Re:main 方法执行的。(thread) [Re: develop8] Copy to clipboard
Posted by: develop8
Posted on: 2006-07-02 06:29

楼上说错了啊,
说优先级如果你不是特意设定的话 main也是5 ,线程也是5,
默认的thread都是5。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923