面试官:Java中线程是按什么顺序执行的?

摘要:Java中多线程并发的执行顺序历来是面试中的重点,掌握Java线程的执行顺序不仅能够在面试中让你脱颖而出,更能够让你在平时的工作中,迅速定位由于多线程并发问题导致的“诡异”问题,让你从工作中脱颖而出。

本文分享自华为云社区《【高并发系列】Java中线程到底是按什么顺序执行的?你了解的可能是错误的!》,原文作者:冰 河 。

Java中线程的执行顺序可能与你想的不一样!一文解密多线程的执行顺序,调用Thread的start()方法启动线程时,线程的执行顺序是不确定的。也就是说,在同一个方法中,连续创建多个线程后,调用线程的start()方法的顺序并不能决定线程的执行顺序。

线程的执行顺序是不确定的

调用Thread的start()方法启动线程时,线程的执行顺序是不确定的。也就是说,在同一个方法中,连续创建多个线程后,调用线程的start()方法的顺序并不能决定线程的执行顺序。

例如,这里,看一个简单的示例程序,如下所示。

package io.binghe.concurrent.lab03; /** * @author binghe * @version 1.0.0 * @description 线程的顺序,直接调用Thread.start()方法执行不能确保线程的执行顺序 */ public class ThreadSort01 { public static void main(String[] args){ Thread thread1 = new Thread(() -> { System.out.println("thread1"); }); Thread thread2 = new Thread(() -> { System.out.println("thread2"); }); Thread thread3 = new Thread(() -> { System.out.println("thread3"); }); thread1.start(); thread2.start(); thread3.start(); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydgzw.html