Java实现线程插队的示例代码
多线程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()
到此这篇关于Java实现线程插队的示例代码的文章就介绍到这了,更多相关Java线程插队内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
springcloud中RabbitMQ死信队列与延迟交换机实现方法
死信队列是消息队列中非常重要的概念,同时我们需要业务场景中都需要延迟发送的概念,比如12306中的30分钟后未支付订单取消,那么本期,我们就来讲解死信队列,以及如何通过延迟交换机来实现延迟发送的需求,感兴趣的朋友一起看看吧2022-05-05IntelliJ IDEA 2019.1.1 for MAC 下载和注
这篇文章主要介绍了IntelliJ IDEA 2019.1.1 for MAC 下载和注册码激活,教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-04-04Java中的ThreadPoolExecutor线程池原理细节解析
这篇文章主要介绍了Java中的ThreadPoolExecutor线程池原理细节解析,ThreadPoolExecutor是一个线程池,最多可使用7个参数来控制线程池的生成,使用线程池可以避免创建和销毁线程的资源损耗,提高响应速度,并且可以管理线程池中线程的数量和状态等等,需要的朋友可以参考下2023-12-12
最新评论