您的位置:首页 > 编程语言 > Java开发

线程调度器的不可预见性

2016-10-24 10:15 141 查看
看HeadFirtJava中有一个很有趣的例子能够显示出线程调度的一个不可预见性,看下面的demo

public class TestDemo {
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();
System.out.println("主方法执行。。。");
}
}
class MyRunnable implements Runnable {
@Override
public void run() {
go();
}
private void go() {
doMore();
}
private void doMore() {
System.out.println("你说神奇不神奇");
}
}

输出结果1:main()启动新线程;调度器把主线程搁置以执行新的线程,调度器执行一下新线程就回到主线程,调度器回到新的线程继续执行,再度回到主线程执行打印输出(机器的性能很重要);最后,新线程执行到最后。
主方法执行。。。
你说神奇不神奇输出结果2:main()方法启动新线程;调度器搁置主线程以便执行新线程;新线程打印输出“你说神奇不神奇。。。”;执行主线程。
你说神奇不神奇
主方法执行。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  线程 java