对线程的插队行为的理解

在编写多线程时,会遇到让一个线程优先于其他线程运行的情况,

此时除了可以设置其优先级高于其他线程外,更直接的方式是使用Thread类的join()方法

使用join()方法,可实现”插队”效果。当插队的线程运行结束后,其他线程将继续执行。

join()方法是Thread类的一个静态方法,它有三种形式:

join() : 等待调用该方法的线程终止

join(long millis) : 等待调用该方法的线程终止的时间最长为millis毫秒

join(long millis,int nanos) : 等待调用该方法的线程终止的时间最长为millis毫秒加纳秒

注:如果有线程中断了运行join()方法的线程,则抛出InterruptedException

代码实例:

package com.xhj.thread;

/**

* 用join()来实现线程的插队

*

* @author XIEHEJUN

*

*/

public class JoinThread implements Runnable {

@Override

public void run() {

for (int i = 1; i < 6; i++) {

try {

Thread.sleep(100); } catch (Exception e) { // TODO: handle exception } System.out.println("紧急情况:" + i + "号车出发"); } } public static void main(String[] args) { JoinThread join = new JoinThread(); Thread thread = new Thread(join); thread.start(); for (int i = 1; i < 6; i++) { try { Thread.sleep(100); } catch (Exception e) { e.printStackTrace(); } System.out.println("正常情况下:" + i + "号车出发"); try { thread.join(); } catch (Exception e) { e.printStackTrace(); } } } }

java 线程的插队运行_java笔记–线程的插队行为相关推荐

  1. java实现线程同步的方法_Java实现线程同步方法及原理详解

    一.概述 无论是什么语言,在多线程编程中,常常会遇到多个线同时操作程某个变量(读/写),如果读/写不同步,则会造成不符合预期的结果. 例如:线程A和线程B并发运行,都操作变量X,若线程A对变量X进行赋 ...

  2. java 线程池的使用_Java 使用线程池执行若干任务

    在执行一系列带有IO操作(例如下载文件),且互不相关的异步任务时,采用多线程可以很极大的提高运行效率.线程池包含了一系列的线程,并且可以管理这些线程.例如:创建线程,销毁线程等.本文将介绍如何使用Ja ...

  3. java中线程池的使用_Java中线程池的简单使用

    什么是线程池? 顾名思义线程池就是线程的容器 举个例子:在没有共享电源的年代,车站有5个人手机都没电且都没有带电源,这五个人想要给手机充电只能去车站的售货亭各花100块钱买一个移动电源:但是现在共享电 ...

  4. python 中主线程结束 子线程还在运行么_python 线程之一:线程的创建、启动及运行方式

    threading:这个模块在较低级的模块 _thread 基础上建立较高级的线程接口 以后我们就用 threading 模块来管理线程就可以了. Tread 类:控制线程创建.启动及运行方式 一.线 ...

  5. java 线程的插队运行_Java线程插队

    当某个线程中调用其它线程的join()方法时,调用的线程将被阻塞,直到被join()方法加入的线程执行完成后才会继续运行. 示例: public class ThreadJoin { public s ...

  6. java什么时候需要同步_JAVA中线程在什么时候需要同步和互斥

    JAVA中线程在什么时候需要同步和互斥 关注:265  答案:6  mip版 解决时间 2021-01-27 08:10 提问者时光易老 2021-01-27 03:32 JAVA中线程在什么时候需要 ...

  7. java中的僵死进程_Java中线程间怎么通讯?什么叫僵死线程?

    <尸家保镖> <猛鬼出千> <不死心灵> <大家发财> <灵幻少女> <九天玄女> <僵尸至尊> <湘西尸王& ...

  8. java线程等待都完成_Java等待线程完成

    我有一个线程下载数据,我想等待,直到下载完成之前,我加载数据.有这样做的标准方法吗? 更多信息: 我有一个下载类,从URL(序列化POJO)获取数据.下载是Runnable和Observable.它跟 ...

  9. java线程安全的方法_Java实现线程安全的方式

    多线程环境中如何保证线程安全?java可以实现线程安全的方式归纳如下: 1.使用synchronized关键字 synchronized关键字可以修饰方法和代码块,它的语义是保证同一段代码同一时间只能 ...

  10. java模拟三人爬山_java笔记——模拟多人徒步爬山例子

    模拟多人徒步爬山,使用多线程模拟多人徒步爬山训练要点,使用任意一种方式创建线程,使用 Thread.sleep()方法设置线程休眠.需求说明:每个线程代表一个人可设置每人爬山速度每爬完 100 米显示 ...

最新文章

  1. 欧拉角和旋转矩阵相互转换
  2. winform 异步更新ui
  3. 简单免杀绕过和利用上线的 GoCS
  4. 《APUE》第6章笔记
  5. 面试官系统精讲Java源码及大厂真题 - 10 Map源码会问哪些面试题
  6. TypeScript入门指南(译文)
  7. Nginx (1)---安装配置
  8. andorid 三种方式的练习
  9. 解决wordpress不能上传媒体问题
  10. 泛微协同办公平台E-cology8.0版本后台维护手册--组织权限中心
  11. 工厂管理系统(java web前端和后端)
  12. 外卖cps美团饿了么小程序 每天领取外卖优惠券 下单直接抵扣现金(外卖cps返利分销小程序源码)
  13. css边框图片border-image切图原理
  14. Word使用技巧-分页符-分节符
  15. hp 800 g4 twr linux,【拆机】HP EliteDesk 800 G4 TWR—探究塔式机箱的秘密
  16. FHD、4K、8K为何物
  17. (超、深)超像素网络SSN
  18. arXiv每日推荐-5.9:语音/音频每日论文速递
  19. 【源码】数学研究者的Cleve_s实验室
  20. 问答推广技巧和注意事项问答平台推广的执行方案

热门文章

  1. 浅谈什么是大数据?大数据可以做什么?
  2. 在质疑声中,81岁的丁肇中或将证实“反物质世界”的存在
  3. 三人表决器逻辑表达式与非_正则表达式 - 驰念
  4. 2011—2019年软考中级数据库系统工程师历年真题
  5. 霏霏暮雨 eclipse+HBASE开发环境搭建(已实践
  6. 文本框仅允许输入大于0的正整数
  7. python的logo的代码_简单几步,100行代码用Python画一个蝙蝠侠的logo
  8. java mock when return can not resolve method xxxx error
  9. 10个办公必备神器PPT网站,免费!!!
  10. MySQL无法启动,服务没有报告任何错误