Java线程插队

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Java线程插队

小虚竹and掘金   2022-09-29 我要评论

多线程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()

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们