在 Thread 类中提供了一个 join ()方法来实现“插队功能”。当在某个线程中调用其他线程的 join ()方法时,调用的线程将被阻塞,直到被 join ()方法加入的线程执行完成后它才会继续运行。

ExampleM10:

//线程插队
public class ExampleM10 {public static void main(String[] args) throws Exception{//创建线程Thread t = new Thread(new EmergencyThread(),"线程一");t.start();  //开启线程for (int i=1;i<6;i++){System.out.println(Thread.currentThread().getName()+"输入:"+i);if (i==2){t.join();   //调用 join() 方法}Thread.sleep(500);  //线程休眠 500 毫秒}}
}
class EmergencyThread implements Runnable {public void run() {for (int i = 1;i<6;i++) {System.out.println(Thread.currentThread().getName()+"输入:"+i);try {Thread.sleep(500);  //线程休眠 500 毫秒}catch (InterruptedException e){e.printStackTrace();}}}
}

该例子 main 线程中开启了一个线程 t ,两个线程的循环体中都调用了 Thread 的sleep (500)方法,以实现两个线程的交替执行。当 main 线程中的循环变量为2时,调用 t 线程的 join ()方法,这时, t 线程就会“插队”优先执行。从运行结果可以看出,当 main 线程输出2以后,线程一就开始执行,直到线程一执行完毕, main 线程才继续执行

Java——线程插队_join ()方法来实现“插队功能”相关推荐

  1. java 线程同步的方法_Java多线程同步方法

    Java多线程同步方法 package com.wkcto.intrinsiclock; /** * synchronized同步实例方法 * 把整个方法体作为同步代码块 * 默认的锁对象是this对 ...

  2. java线程三种方法,Java基础_线程的使用及创建线程的三种方法

    线程:线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 进程:进 ...

  3. JAVA线程两种方法内存,JAVA线程基础回顾及内存模型(一)

    线程创建的两种方式 继承Thread类 class MyThread extends Thread{ ...... @Override public void run(){ ...... } } My ...

  4. Java线程池execute()方法源码解析

    先看作者给出的注释来理解线程池到底有什么作用 * Thread pools address two different problems: they usually * provide improve ...

  5. java线程中join方法的简单讲解

    一.作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并发执行变为串行执行.具体看代码: public class Test {public static void main ...

  6. Java——线程让步_yield()方法

    线程让步可以通过 yield ()方法来实现,该方法和 sleep ()方法有点相似,都可以让当前正在运行的线程暂停,区别在于 yield() 方法不会阻塞该线程,它只是将线程转换成就绪状态,让系统的 ...

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

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

  8. java线程的实现方法_Java多线程的四种实现方式

    1.Java多线程实现的方式有四种: 1.继承Thread类,重写run方法 2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的targ ...

  9. java线程池 的方法_JAVA线程池的实现方法

    我们大家都知道,在处理多线程服务并发时,由于创建线程需要占用很多的系统资源,所以为了避免这些不必要的损耗,通常我们采用线程池来解决这些问题. 线程池的基本原理是,首先创建并保持一定数量的线程,当需要使 ...

最新文章

  1. 学生教育云平台登录入口_湖南省教育云平台登录入口
  2. springboot mockmvc单元测试
  3. python3 dict 字典 合并
  4. python安装教程3.8.5-[分享栈]centos7安装python3.8.5
  5. Linux下FTP服务器搭建
  6. 每天学一点儿shell:Shell的常用语法规则
  7. 照片处理软件(iSee图片专家) 3.930 中文免费版
  8. mysql文档批处理去重_数据导入经验总结
  9. linux语法错误 未预期的文件结尾,centos shell运行报语法错误: 未预期的文件结尾...
  10. linux下达梦数据库启动_linux 平台 达梦DM 7 数据库 启动与关闭
  11. python时间函数报错_Python Day11-LEGB-global-时间函数
  12. 要想能安心,必须先死心。
  13. Advapi 登录类型8的错误
  14. 中国石油计算机文化基础答案,中国石油大学17年秋《计算机文化基础》第二次在线作业答案...
  15. docker部署redis集群_Docker部署Redis集群----第九节(docker-redis哨兵集群“轮询分流”篇实例一)...
  16. 【C++ STL】深入解析神秘的 --- 仿函数
  17. SATA硬盘接口是什么
  18. 目标客户画像_4 种类型 + 10 大步骤,详解用户画像
  19. RationalDMIS 2020定制报告(EXCEL)
  20. 格式工厂 wav 比特率_鸡娃常用工具系列一格式工厂(音频转换软件)

热门文章

  1. 使用wxauto出现ImportError: DLL load failed while importing win32gui: 找不到指定的程序报错的解决方案
  2. TP6 控制器不存在:app\index\controller\Index
  3. 计算机哪个自考学校好,哪个学校的自考计算机专业本科比较好通过?
  4. 四月国漫新番大理寺日志前四集弹幕分析
  5. 洗车Myjnie 题解
  6. VMware设置共享文件夹之后/mnt/hgfs里面什么也没有
  7. 驱动中platform resource 和 porbe 之间的关系
  8. 北航计算机学硕和专硕的录取率,北航清退404位学生!过来人告诉你,读研和读博的压力比想象更大...
  9. ae打开模板显示不出来_为什么套用的AE模板打开之后没有错误提示却还是有問題?...
  10. updater-script