【Java多线程】Join的使用、如何使用getState()查看线程的状态
代码
t.join();
表示:线程t插队 main被阻塞 需要等待t执行完毕后main再继续
package cn.hanquan.test;import java.text.SimpleDateFormat;
import java.util.Date;public class TestJoin {public static void main(String[] args) throws InterruptedException {Thread t = new Thread(() -> {for (int i = 0; i < 50; i++) {System.out.println(Thread.currentThread().getName() + "-->" + i);}});t.start();for (int i = 0; i < 50; i++) {System.out.println(Thread.currentThread().getName() + "-->" + i);if (i == 20)t.join();// 线程t插队 main被阻塞 需要等待t执行完毕后main再继续}}
}
查看线程的状态
以下为常见的线程状态:
使用getState()
查看线程的状态的示例代码:
package cn.hanquan.test;import java.text.SimpleDateFormat;
import java.util.Date;/** yield礼让线程,直接进入就绪状态,不是阻塞状态*/public class TestJoin {public static void main(String[] args) throws InterruptedException {// 一个独立的线程Thread t = new Thread(() -> {for (int i = 0; i < 50; i++) {System.out.println(Thread.currentThread().getName() + "-->" + i);}});t.start();// 一个能够检测线程t的-状态的线程Thread h = new Thread(() -> {while (t.getState() != Thread.State.TERMINATED) {System.out.println("线程Thread-0的状态是" + t.getState());}});h.start();// 主线程for (int i = 0; i < 50; i++) {System.out.println(Thread.currentThread().getName() + "-->" + i);if (i == 20)t.join();// 线程t插队 main被阻塞 需要等待t执行完毕后main再继续}}
}
【Java多线程】Join的使用、如何使用getState()查看线程的状态相关推荐
- java中关于线程的状态属性_深入理解Java多线程与并发框(第①篇)——线程的状态...
![](http://img.blog.itpub.net/blog/2020/03/20/5d189a73e1147f37.png?x-oss-process=style/bb) **1. 新建状态 ...
- 我也学习JAVA多线程-join
[原文链接]:https://blog.tecchen.xyz ,博文同步发布到博客园. 由于精力有限,对文章的更新可能不能及时同步,请点击上面的原文链接访问最新内容. 欢迎访问我的个人网站:http ...
- Java多线程系列--“基础篇”09之 interrupt()和线程终止方式
概要 本章,会对线程的interrupt()中断和终止方式进行介绍.涉及到的内容包括: 1. interrupt()说明 2. 终止线程的方式 2.1 终止处于"阻塞状态"的线 ...
- Java多线程笔记(零):进程、线程与通用概念
前言 不积跬步,无以至千里:不积小流,无以成江海.在学习Java多线程相关的知识前,我们首先需要去了解一点操作系统的进程.线程以及相关的基础概念. 进程 通常,我们把一个程序的执行称为一个进程.反过来 ...
- java多线程同时运行_Java实现的两个线程同时运行案例
本文实例讲述了Java实现的两个线程同时运行.分享给大家供大家参考,具体如下: /** * 两个案例同时运行案例 * 1:这个两个线程并不是有规律的运行而是有没有规律的交替运行 */ package ...
- 【JAVA多线程学习笔记】(1)实现线程的方式 线程生命周期 操作线程的方法
文章目录 两种方式实现线程 继承Thread类 模拟银行叫号的程序 Runnable接口 代码1:(与swing相结合创建gui程序) Thread类的⼏个常⽤⽅法 线程生命周期 操作线程的方法 代码 ...
- Java多线程学习四:共有哪 3 类线程安全问题
我们在实际开发中经常会遇到线程不安全的情况,那么一共有哪 3 种典型的线程安全问题呢? 运行结果错误: 发布和初始化导致线程安全问题: 活跃性问题. 运行结果错误 来看多线程同时操作一个变量导致的运行 ...
- Java多线程学习二十:HashMap 为什么是线程不安全的
为什么 HashMap 是线程不安全的?而对于 HashMap,相信你一定并不陌生,HashMap 是我们平时工作和学习中用得非常非常多的一个容器,也是 Map 最主要的实现类之一,但是它自身并不具备 ...
- 十分钟搞定Java多线程-如何使用sleep()方法和TimeUnit暂停线程
为什么要使用sleep暂停线程 有多种方法可以暂停或停止当前正在运行的线程,但是使用Thread.sleep()方法将线程置于睡眠状态才是暂停线程的正确方法.有些人会说,为什么不用wait和notif ...
最新文章
- ZOJ 3805--解题报告
- 精通python网络爬虫-精通Python网络爬虫:核心技术、框架与项目实战 PDF
- SQL Server常用的系统存储过程应用实例
- DocumentNavigator是什么东东?
- java完数流程图_编程基本功训练:流程图画法及练习
- Taro+react开发(99):问答模块06实现加减
- css background 充满自适应_剖析一些经典的CSS布局问题,为前端开发+面试保驾护航...
- 云计算与星辰大海的结合——不要回答,来自百亿光年外的未知信号
- jsp java循环读取json_JAVA JSON遍历问题,求解(内附代码)
- Android中文API(99)—— RelativeLayout
- 未能加载文件或程序集“System.Runtime.Serialization, Version=2.0.5.0, Culture=neutral,
- 集结号!四大国产开源数据库共聚申城,共话未来技术演进
- ONE-ReactNative
- python小游戏源码
- 怎样稳稳获得年化高收益
- 深入浅出mysql第三版pdf百度云,工作感悟
- TrendForce:2018年上半年电视面板出货年增11%
- 股票买卖问题-含手续费
- 【CK】ClickHouse入门
- msm8953-配置I2C 速率
热门文章
- Gym - 101986F Pizza Delivery(最短路+DAG必经边)
- qduoj - WHY吃糖果(二分套二分)
- Linux服务-FTP文件服务器部署
- Cannot add or update a child row: a foreign key constraint fails (`university`.`instructor`, CONSTRA
- 梅州有学java的地方吗,梅州java工资水平,梅州java工资很高吗,梅州java工资底薪能到多少...
- POJ3244(工科数学分析)
- JSP中的include指令
- 获取网络时间并刷新本地时间(源码2)
- 视频码率,帧率和分辨率的区别
- 用 70 行代码给你自己写一个 strace