java线程
来源:互联网 发布:人的音域 知乎 编辑:程序博客网 时间:2024/05/01 04:12
一.interrupt()方法
(1)有什么作用
打断一个处于阻塞状态的线程。具体就是调用了Object.wait()或Thread的join()或Thread.sleep()的线程再调用interrupt()方法会抛出一个InterruptedException,提前结束阻塞状态,如果线程没有进入阻塞状态调用interrupt()方法没有任何效果。
二.线程状态
(1)新建状态:new线程之后。
(2)就绪状态:调用start()方法之后,进入可运行线程池,等待cpu调度。
(3)运行状态:获取cpu调度权之后,线程开始执行。
(4)阻塞状态:因为某种原因放弃cpu使用权,暂时停止运行,直到进入就绪状态才有机会进入运行状态,阻塞分三种。
<1>.等待阻塞:调用wait()方法后进入等待线程池。
<2>.同步阻塞:线程在获取对象同步锁时发现已被其他线程获取,进入锁线程池。
<3>.其他阻塞:调用sleep(),join()方法或者io阻塞,等到超时或其他原因线程重新进入就绪状态。
(5)死亡状态:线程执行完毕或因异常退出,线程生命周期结束。
三.线程状态图
四.join()方法
在A线程中的某处调用了B线程的join()方法,则A线程从调用处开始阻塞,直到B线程执行完毕A线程才会继续执行。简而言之就是使异步执行的线程变成同步执行。
五.yield()方法
当前线程放弃cpu使用权,从运行状态恢复到就绪状态。
六.wait()和notify()/notifyAll()方法
只能在同步方法中调用,wait()释放同步锁(sleep(),yield()不会释放),同时线程进入阻塞状态,notify()/notifyAll()或者超时会让线程恢复执行。
- Java线程:什么是线程
- Java线程:线程池
- java线程--线程退出
- JAVA-线程/线程锁
- Java线程:什么是线程
- Java线程:线程中断
- Java线程:线程状态
- Java线程: 线程调度
- Java线程:线程交互
- java--线程--线程池
- java 线程
- Java线程
- java线程
- java线程
- Java线程
- Java线程
- java线程
- JAVA 线程
- 生成树相关问题
- Objective - C基础: 第一天 - 2. 第3, 4个OC程序 - 多文件编译以及与C文件混编
- spring web flow 随记
- Linux cpufreq 机制了解
- Linux bash 脚本语言
- java线程
- (每日算法)LeetCode -- Merge Sorted Array (合并有序数组)
- Java web----Tomcat配置连接池
- Alex 的 Hadoop 菜鸟教程: 第8课 Hbase 的 java调用方法
- web前端开发规范
- 关于C语言的memset容易出现的问题
- 【将金令】1.12晚评:美国数据引爆多方大举反攻
- python的基本操作(dic)
- Android 图片添加水印图片或者文字