Java线程插队
小虚竹and掘金 人气:0多线程5(线程插队)
1.题目
在编写多线程的业务时,会遇到让一个线程优先于其他线程运行的情况,除了可以设置线程的优先级高于其他线程,还有更直接的方式:使用Thread类的join()方法。
实现:实现线程插队
2.解题思路
创建一个类:EmergencyThread,实现Runnable接口
在run()方法中,每隔0.1秒输出一条语句。
写一个测试类:JoinThread用来进行测试。
在类中使用EmergencyThread创建并运行新的线程。
使用join()方法让新线程优先于当前线程运行
Thread是程序中的执行线程。JAVA虚拟机允许应用程序并发地运行多个执行线程。
Thread.join():设置了join的线程会优先于其他线程先执行。
注:可以把Thread.join()注释掉,对比下运行结果。
3.代码详解
EmergencyThread
package com.xiaoxuzhu; /** * Description: * * @author xiaoxuzhu * @version 1.0 * * <pre> * 修改记录: * 修改后版本 修改人 修改日期 修改内容 * 2022/5/14.1 xiaoxuzhu 2022/5/14 Create * </pre> * @date 2022/5/14 */ public class EmergencyThread implements Runnable { @Override public void run() { for (int i = 1; i < 6; i++) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("紧急情况:" + i + "号车出发!"); } } }
JoinThread
public class JoinThread { public static void main(String[] args) { Thread thread = new Thread(new EmergencyThread()); thread.start(); for (int i = 1; i < 6; i++) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("正常情况:" + i + "号车出发!"); try { thread.join(); } catch (InterruptedException e) { e.printStackTrace(); } } } }
注释掉代码Thread.join()
加载全部内容