Java并发包常见异常_Java并发包1--线程的状态及常用方法
一、线程主要有以下几种状态:
new(新建):线程刚刚被创建
runnable(就绪):新建的线程执行start方法进入就绪状态等待系统调度分配CPU,被分配了之后就进入运行中状态
blocked(阻塞):当线程执行被锁的代码块或方法时,等待其他线程释放锁而处于阻塞状态
waiting(等待):线程进入等待状态,需要等待其他线程做出一些特点动作(通知或中断)
time_waiting(超时等待):和waiting状态类似,不过可以在指定的时间自行结束等待
terminated(终止状态):当线程执行run方法完成或因为异常退出时进入终止状态
二、线程的各种状态的流转图如下示:
三、线程的各种方法用法
start():线程被创建之后,执行start方法使线程进入就绪状态,等待系统调度分配CPU来执行
run():线程执行业务逻辑,执行完成run方法里面的内容就会进入终止状态
yield():yield方法是让步的意思,将当前线程状态由“运行中”进入到“就绪状态”,目的是让出CPU来给其他线程来执行,但是不会释放当前线程持有的对象锁(让步之后就绪的线程等待CPU执行,有可能还会执行让步的线程)
wait():使当前线程进入等待状态,并且释放当前线程持有的对象锁,直到等待的时间到了或者是其他线程执行该对象的唤醒方法,如何才可继续进入就绪状态等待CPU
notify():唤醒该对象监视器上等待单个线程
notifyAll():唤醒该对象监视器上等待的所有线程
sleep():使当前线程进入睡眠等待状态,不会释放对象锁,睡眠时间结束重新进入就绪状态
join():join方法会使当前线程当期执行,直到join的线程执行完成才会继续执行。比如main方法里面有两个线程
t1.start();
t1.join();
t2.start();
则t1线程执行之后,再执行t1.join(),那么此时main线程就会放弃后面的执行,直到t1线程执行结束之后才会继续执行main线程,然后继续执行t2线程。
Java并发包常见异常_Java并发包1--线程的状态及常用方法相关推荐
- java中字输入输出异常_Java:详解Java中的异常(Error与Exception)
一. 异常机制的概述 异常机制是指当程序出现错误后,程序如何处理.具体来说,异常机制提供了程序退出的安全通道.当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器. 程序错误分为三种:1 ...
- java异常处理机制--常见异常汇总
ArithmeticExecption|算术异常类. NullPointerException|空指针异常类. ClassCastException|类型强制转换异常. NegativeArrayEx ...
- java中的常见异常1 -- 新手上路,减速慢行
Throwable: 异常的顶级父类 ----Error:错误,程序无法处理 ----Exception:异常,可通过编码修复 ...
- java中的常见异常
1. java.lang.NullPointerException(空指针异常) 调用了未经初始化的对象或者是不存在的对象 经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时 ...
- java 并发包 使用场景_java并发包原理及使用场景
java并发包下有很多内置的处理线程安全问题工具类,在集合中就有2种线程同步的类,比如:Vector较ArrayList线程安全,但是效率较低,同样的还有Hashtable和HashMap,在实际项目 ...
- JAVA捕捉输入格式异常_Java学习(四).异常处理
异常处理 任何一个软件或程序都可能在运行的过程中出现故障,问题的关键是故障出现以后如何处理?谁来处理?怎样处理?处理后系统能否恢复正常的运行?本章在介绍Java处理这类问题基本方法的基础上,讨论包含异 ...
- java中飞飞检查异常_Java复习6异常处理
Java复习6.异常处理 20131005 前言: Java中的异常处理机制是非常强大的,相比C++ 来说,更加系统.但是我们开发人员没有很好的使用这一点.一些小的程序是没有什么问题的,但是对于大型项 ...
- java为啥要捕捉异常_java – 为什么在捕获时使用IOexception而不是Exception?
我似乎无法正确地说出这一点,搜索引擎可以获得任何有意义的结果. try{ BufferedReader reader = new BufferedReader( new FileReader(&quo ...
- java try catch 捕捉异常_java的 try-catch异常捕捉处理
1.try-catch方法 try { 语句.... } catch (InterruptedException e) { e.printStackTrace(); } 2.解释1 当try语句中出现 ...
最新文章
- Java操作Kafka执行不成功
- Ubuntu18.04安装Scala
- JAVA学习笔记-“Hello World”
- 数据可视化系列(四):文字图例尽眉目
- 【NOI2016】网格,离散化+求割点
- spyder替换_Spyder 快捷键大全
- 日本第四次产业革命瞄准物联网
- 关于vue2用vue-cli搭建环境后域名代理的http-proxy-middleware解决api接口跨域问题
- command -- 把动作封装成类
- Kafka监控系统Kafka Eagle:支持kerberos认证
- 【C009】ArcGIS VBA - 学习
- python贪吃蛇_python实现贪吃蛇
- vbs编程-执行cmd命令
- iris数据集(.csv .txt)免费下载
- 开关电源设计实例之Boost 篇
- 我来到广东第一“鬼城”,打算买房安家
- word列表数据计算机,怎么把树状图的数据填成excel表格-谁会计算机啊,怎么把word里的表格数据转换成簇状......
- 【架构】分布式系统及相关技术栈初了解
- A example of Maximum A Posteriori (MAP) estimation
- 【cocos2dx 3.3 lua】04 纸牌翻转效果--类似QQ斗地主癞子效果
热门文章
- Buck-Boost变换
- RGB和RGBQUAD的区别
- C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现
- vs2010项目属性配置
- iOS15仿微信详情二维码支持保存本地相册
- Python如何引用豆瓣api镜像地址
- flutter对比Android绘制流程,Flutter与android的对比---View
- python参数顺序 元组 字典_python学习之元组列表字典操作
- element-ui中el-drawer组件打开自动聚焦问题
- mysql忘记命令后半部分_Mysql 5 易忘的命令