当前位置: 首页 > 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/224630.html

相关文章:

  • 网站服务器怎么做安全防护网站优化哪家好
  • 北京 网站建设企业推广网络营销
  • 上海公司做网站网络关键词排名软件
  • 品牌策划公司和品牌设计公司厦门seo排名收费
  • 深圳网站建设团队青岛网站seo诊断
  • 网站建设的税收编码厦门网站的关键词自动排名
  • 哪个素材网站比较好用网站设计费用明细
  • 盐田区网站建设网站建设方案书
  • 电子商务网站开发项目策划书搜索引擎优化的概念
  • 做视频解析网站是犯法的么微信营销平台系统
  • 有关网站建设新闻资讯南京seo排名扣费
  • 深圳高端品牌网站建设推广产品的软文怎么写
  • 中国企业500强最新排名一键优化清理
  • 厦门市建设合同备案网站百度知道客服
  • 网站建设优化石家庄媒体代发布
  • 重庆企业网站开发方案seo的主要工作内容
  • 如何做旅游攻略网站营销策划公司名称
  • 上海搜索排名优化公司北京seo费用是多少
  • 青岛做物流网站宜昌网站seo
  • wordpress 站外搜索网络营销软件
  • 祥云平台英文网站百度的广告推广需要多少费用
  • 做网站建设的网站济南优化网络营销
  • 聊城高端网站设计建设域名注册需要多少钱
  • 网站建设柳市注册城乡规划师报考条件
  • 网站建设在windos的设置搜索引擎营销的特点包括
  • 怎么样免费做网站百度广告电话号码是多少
  • 国家林业工程建设协会网站网店无货源怎么做
  • 怎么样可以做网站百度竞价登陆
  • 商业网站开发文档优化大师官网
  • 做维修广告效最好是哪个网站吗seo综合查询 站长工具