Java多线程(三)线程的调度
一、线程调度顺序
前提: 如果一个进程中同时开三个线程,那么谁先谁后呢?
-
代码实现案例:
/** * 测试线程的执行顺序 */ public class TestThreadSort implements Runnable{ public static void main(String[] args) { //使用实现Runnable方法的好处就是可以多实现 TestThreadSort testThreadSort = new TestThreadSort(); //开启线程1 new Thread(testThreadSort,"丁大大").start(); //开启线程2 new Thread(testThreadSort,"甲大大").start(); //开启线程3 new Thread(testThreadSort,"乙大大").start(); } @Override public void run() { //Thread.currentThread().getName() ---获取当前线程的名称 for (int i=0;i<100;i++){ System.out.println(Thread.currentThread().getName()+"看了第"+i+"本书"); } } }
-
执行结果如下: 注意项: 开启一个线程时,即new Thread(实例化对象,name),为开启的线程取了一个名字。 在线程内部可使用Thread.currentThread().getName() 获取该线程本身的名称。 小结: 通过以上的代码执行结果来看,我们可以得出结论,线程的执行并不是按照指定的顺序来,比如我依次开启线程1、2、3,但实际的执行结果并不受我们的控制,而是由cpu调度器随机调度执行的!
二、主线程的执行
-
代码实现案例 理论上结果:等待三个人看完,最后才是老师看书。 实际结果如下: 结论:主线程(main()线程)优先执行。
Java多线程扩展:
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
数字电路——余3循环码