关于一段多线程程序的执行顺序
两个类
- Java code
public class ThreadMain{ public static void main(String[] args) { Thread1 t1 = new Thread1(); t1.start(); System.out.println("I'm from threadMain"); System.out.println("wait for 5 seconds"); try { Thread.sleep(5000); } catch (Exception e) { e.printStackTrace(); } System.out.println("threadMain comes back"); }}public class Thread1 extends Thread{ public void run() { System.out.println("I'm from thread1"); }}为什么我的执行结果是:
I'm from threadMain
I'm from thread1
wait for 5 seconds
threadMain comes back
[解决办法]
线程的执行顺序是不确定的。 你要是需要按你的想法来得到结果,线程有个优先顺序的。 你可以设置
[解决办法]
你下次运行可能就不是这个顺序了
[解决办法]
调用了 t1.start();
两个线程都在执行 没有顺序的
[解决办法]
public void run()
{
try
{
Thread.sleep(500);
}
catch (Exception e)
{
e.printStackTrace();
}
System.out.println("I'm from thread1");
}
这样你再试试看
[解决办法]
[解决办法]
从你调用start()方法的瞬间,执行顺序就不确定了
[解决办法]