Java实现线程插队的示例代码

 更新时间:2022年08月24日 14:09:59   作者:小虚竹and掘金  
在编写多线程的业务时,会遇到让一个线程优先于其他线程运行的情况,除了可以设置线程的优先级高于其他线程,还有更直接的方式:线程插队。本文将用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线程插队内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java系统的高并发解决方法详解

    Java系统的高并发解决方法详解

    这篇文章主要介绍了Java系统的高并发解决方法,内容十分丰富,在这里分享给大家,需要的朋友可以参考。
    2017-09-09
  • Seata集成Mybatis-Plus解决多数据源事务问题

    Seata集成Mybatis-Plus解决多数据源事务问题

    当进行业务操作时,订单发生异常 ,进行了回滚操作,因为在不同的数据库实例中,余额却扣除成功,此时发现数据不一致问题,本文给大家介绍Seata集成Mybatis-Plus解决多数据源事务问题,感兴趣的朋友一起看看吧
    2023-11-11
  • Java工厂模式的使用细则介绍

    Java工厂模式的使用细则介绍

    工厂模式,是一种实例化对象的方式,只要输入需要实例化对象的名字,就可以通过工厂对象的相应工厂函数来制造你需要的对象
    2023-02-02
  • Java注解之Retention、Documented、Inherited介绍

    Java注解之Retention、Documented、Inherited介绍

    这篇文章主要介绍了Java注解之Retention、Documented、Inherited注解介绍,本文内容和相关文章是系列文章,需要的朋友可以参考下
    2014-09-09
  • java计算自然数中的水仙花数的方法分享

    java计算自然数中的水仙花数的方法分享

    这篇文章主要介绍了java计算自然数中的水仙花数的方法,需要的朋友可以参考下
    2014-03-03
  • Java实现导入csv的示例代码

    Java实现导入csv的示例代码

    这篇文章主要为大家详细介绍了Java实现导入csv的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • Java中ArrayList的removeAll方法详解

    Java中ArrayList的removeAll方法详解

    这篇文章主要给大家介绍了关于Java中ArrayList的removeAll方法的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来看看吧。
    2017-07-07
  • java 代理模式及动态代理机制深入分析

    java 代理模式及动态代理机制深入分析

    这篇文章主要介绍了java 代理模式及动态代理机制深入分析的相关资料, 代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问,需要的朋友可以参考下
    2017-03-03
  • 使用Spring Cache设置缓存条件操作

    使用Spring Cache设置缓存条件操作

    这篇文章主要介绍了使用Spring Cache设置缓存条件操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 教你Spring Cloud保证各个微服务之间调用安全性

    教你Spring Cloud保证各个微服务之间调用安全性

    在微服务的架构下,系统会根据业务拆分为多个服务,各自负责单一的职责,在这样的架构下,我们需要确保各api的安全性,今天通过本文给大家分享Spring Cloud中如何保证各个微服务之间调用的安全性,需要的朋友参考下吧
    2021-08-08

最新评论