多线程入门02 —— 线程的状态
发布日期:2022-04-11 08:52:52
浏览次数:11
分类:博客文章
本文共 1226 字,大约阅读时间需要 4 分钟。
1.线程的五大状态
2.线程状态的变化过程
3. 相关方法
方法 | 说明 |
---|---|
setPriority(int newPriority) | 设置线程的优先级 |
static void sleep(long milllis) | 线程休眠指定的时间(以毫秒为单位) |
void join() | 等待该线程终止 |
static void yield() | 礼让他人 |
void interrupt() | 强制中断线程(不推荐使用) |
boolean isAlive() | 测试线程是否处于活动状态 |
- 线程休眠(Sleep)
- 将线程阻塞制定时间(毫秒)
- 存在InterruptedException
- 时间之后,线程进入就绪状态
- 可用于模拟网络延迟,倒计时等,也可用于放大错误
- 每个对象都一个锁,sleep不会释放锁
- 线程礼让(Yield)
- 让当前正在执行的线程暂停,但不阻塞
- 将线程从运行状态转换为就绪状态
- 让CPU重新调度,礼让不一定能成功,全看CPU心情如何
- 强制执行(Join)
- 合并线程,待此线程执行完成后,在执行其他线程,其他线程会被阻塞
- 相当于插队
4.关于停止线程
不推荐使用JDK提供的stop()、destroy()方法 (已过时,且不安全,详见https://www.jianshu.com/p/7686ac6b84f1)
推荐让线程自己停止
利用一个标志位,当标志位处于某种特定状态时,终止线程运行
示例
package com.pbx.lesson01;/** * @author BruceXu * @date 2020/9/13 */public class ThreadStop implements Runnable { private boolean flag = true; public static void main(String[] args) { ThreadStop myThread = new ThreadStop(); new Thread(myThread).start(); try { Thread.sleep(5); } catch (InterruptedException e) { e.printStackTrace(); } myThread.stop(); } @Override public void run() { while (flag) { System.out.println("线程正在运行中"); } System.out.println("线程马上退出"); } public void stop() { this.flag = false; }}
转载地址:https://www.cnblogs.com/primabrucexu/p/13694058.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月02日 11时46分14秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
中文医疗领域自然语言处理相关数据集、经典论文资源蒸馏分享
2019-04-27
2020年新-《机器学习算法入门》
2019-04-27
历史最全语音增强必读论文、数据集、工具包、书籍及应用整理分享
2019-04-27
机器学习基础教材-《统计学习与数据分析介绍》
2019-04-27
DL语音分离|抽取必读论文、数据集、代码工具整理分享
2019-04-27
机器学习百页书作者20年新作-机器学习工程实战
2019-04-27
MLSS 2020-Bengio-《机器学习暑期研究前沿学校》
2019-04-27
20年经典-《海量数据挖掘技术》
2019-04-27
互联网数据驱动力-《数据推动力-创造数据文化》
2019-04-27
搜索推荐-《搜素与推荐中的深度学习匹配(Deep Match)技术》
2019-04-27
强化学习/机器人学经典-策略规划算法原理
2019-04-27
2020最新互联网算法岗必读-算法设计与分析基础
2019-04-27
程序员必读-统计思考-程序员必备概率和统计知识
2019-04-27
<纯干货-2>GAN视频教程part5-DCGAN实战及所有数据
2019-04-27
<深度学习-实战2>Convolutional_Seq2Seq的环境搭建及训练
2019-04-27
<视频教程-2>生成对抗网络GAN视频教程part6-完整版
2019-04-27
<模型汇总_9> 深度学习网络的表达方式汇总及模型分类方法
2019-04-27
深度学习的发展历史及应用现状
2019-04-27