当前位置: 首页 > wzjs >正文

网站关停怎么做近期国际新闻

网站关停怎么做,近期国际新闻,专业外贸网站,全屋定制营销目录 前言1. NEW2. TERMINATED3. RUNNABLE4. 三种阻塞状态总结 前言 本篇文章来讲解线程的几种状态。在Java中,线程的状态是一个枚举类型,Thread.State。其中一共分为了六个状态。分别为:NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING, TERMI…

目录

  • 前言
  • 1. NEW
  • 2. TERMINATED
  • 3. RUNNABLE
  • 4. 三种阻塞状态
  • 总结

前言

本篇文章来讲解线程的几种状态。在Java中,线程的状态是一个枚举类型,Thread.State。其中一共分为了六个状态。分别为:NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,
TERMINATED

1. NEW

new:安排了⼯作, 还未开始⾏动
new状态表示Thread对象已经创建,但是并没有执行Start()语句

public class Demo13 {public static void main(String[] args) {//观看线程的NEW状态Thread t = new Thread(() -> {});System.out.println(t.getState());t.start();}
}

在这里插入图片描述

2. TERMINATED

terminated:⼯作完成了.
就是表示线程结束的状态

public class Demo13 {public static void main(String[] args) throws InterruptedException {//观看线程的NEW状态Thread t = new Thread(() -> {});System.out.println(t.getState());t.start();t.join();System.out.println(t.getState());}
}

在这里插入图片描述

3. RUNNABLE

runnable:可⼯作的. ⼜可以分成正在⼯作中和即将开始⼯作.
runnable即就绪状态

public class Demo13 {public static void main(String[] args) throws InterruptedException {//观看线程的NEW状态Thread t = new Thread(() -> {while (true) {//什么也不做}});System.out.println(t.getState());t.start();System.out.println(t.getState());t.join();System.out.println(t.getState());}
}

在这里插入图片描述
由于内部是while死循环,main一直在等待t线程,故不会结束。

4. 三种阻塞状态

BLOCKED,WAITING,TIMED_WAITING 都表示排队等着其他事情,也就是都表示阻塞状态。但是还是有区别的,BLOCKED表示由于加锁产生的阻塞,WAITING表示无超时时间的阻塞,TIMED_WAITING表示有超时时间的阻塞。也就是说使用join()进行等待就是WAITING,使用join(time)或者使用sleep()进行等待就是 TIMED_WAITING。
下面观察WAITING和TIMED_WAITING状态。
使用一个监视器线程来观察main的状态

public class Demo13 {public static void main(String[] args) throws InterruptedException {//获取mainThread mainThread = Thread.currentThread();//观看线程的NEW状态Thread t = new Thread(() -> {while (true) {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}});System.out.println(t.getState());t.start();System.out.println(t.getState());//观察使用一个监视器线程来观察main线程的状态Thread monitor = new Thread(()-> {try {Thread.sleep(1000);System.out.println(mainThread.getState());} catch (InterruptedException e) {e.printStackTrace();}});System.out.println("main等待前的状态:" + mainThread.getState());monitor.start();System.out.println("main线程开始等待");t.join();System.out.println(t.getState());}

在这里插入图片描述
观察TIMED_WAITING状态只需将最下面的join加入参数:

public class Demo13 {public static void main(String[] args) throws InterruptedException {//获取mainThread mainThread = Thread.currentThread();//观看线程的NEW状态Thread t = new Thread(() -> {while (true) {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}});System.out.println(t.getState());t.start();System.out.println(t.getState());//观察使用一个监视器线程来观察main线程的状态Thread monitor = new Thread(()-> {try {Thread.sleep(1000);System.out.println(mainThread.getState());} catch (InterruptedException e) {e.printStackTrace();}});System.out.println("main等待前的状态:" + mainThread.getState());monitor.start();System.out.println("main线程开始等待");t.join(5000);System.out.println(t.getState());}
}

在这里插入图片描述
BLOCKED状态需要对线程进行加锁,加锁操作将在后面的文章中讲到,故在此处不演示BLOCKED状态。

总结

本文章介绍了java线程中的六个状态,在实际工作中调试中就可能需要打印线程状态,来查找程序中的错误。

http://www.dtcms.com/wzjs/155694.html

相关文章:

  • 有哪些做兼职的设计网站贵阳百度快照优化排名
  • 公司网站制作步骤流程图深圳搜索引擎优化推广
  • 阿里个人网站南宁百度seo公司
  • 长沙最好网站建设建一个自己的网站
  • 企业社交网站定制防恶意点击软件
  • 德国网站的后缀名今日头条新闻最新疫情
  • bootstrap设计的精美网站百度怎么推广自己的视频
  • 深圳建设网站哪家好沈阳关键词优化报价
  • wordpress支付功能seo排名怎么做
  • 长沙专业做网站公司网址怎么注册
  • 包头网站作风建设年自评材料中国十大知名网站
  • 网络公司网站设计方案ppt免费p站推广网站入口
  • 微信小程序后端开发流程厦门网站推广优化哪家好
  • 潍坊网站建设工作室短视频seo推广
  • 网站建设与维护实训总结网络推广的方式和途径有哪些
  • edm营销优化大师如何删掉多余的学生
  • 查询网站备案密码是什么情况江苏seo网络
  • 公司网站建设是什么意思如何自己做网站
  • 网站开发者排名网页设计案例
  • wordpress 站外搜索阐述网络营销策略的内容
  • 青龙网站建设网络营销的公司有哪些
  • 网站psd切图做响应式效果网络营销公司经营范围
  • 微网站ui多少钱学seo如何入门
  • 建网站用营业执照吗google下载
  • 模板网站可以优化吗整站外包优化公司
  • 做海报创客贴同类网站微信引流的十个方法
  • 广东企业网站seo报价推广代理平台登录
  • 互联网兼职做网站维护媒体发布平台
  • 公司做网站有意义么磁力搜索引擎
  • 宠物网站开发与实现seo优化几个关键词