java多线程学习笔记(二)
来源:互联网 发布:java程序调试的步骤 编辑:程序博客网 时间:2024/06/12 03:40
将笔者学习多线程的一些笔记发出来,方便读者学习,以前总是索取,不知道回报,希望我的一些经历经验,会帮助到正在学习的你,也希望大家能一起讨论,共同学习。(如果有问题,可以留言,笔者会尽快处理,如果有出错,希望您能指出,大家共同学习)
8、 线程的状态
Ø 初始状态
使用new关键字创建一个线程,则线程就处理初始状态。
Ø 就绪状态
创建线程后,需要我们手动调用start方法,来开启线程,start方法会新建一个线程并让这个线程执行run方法。有的同学可能不理解,为什么不直接调用run方法,请记住调用run来开启新线程,它只会在当前的线程中,串行的执行run的方法。
Ø 运行状态
调用start方法后,其实不会立刻的运行线程,必须排队,等待cpu来执行。当cpu真的处理当前的线程了,线程才处于运行状态
Ø 阻塞状态
阻塞状态就是线程被中断了,但是没有终止,可以在某些条件下继续运行。比如:
调用Thread.interrupt()方法,他会通知线程中断,但是线程不一定会中断,需要我们自己处理中断的逻辑。
调用Thread.sleep()方法,线程会处于睡眠状态,一般会设置睡眠时间,到时间后,会自动重新运行。
调用Thread.wait()方法,线程会处于等待状态,知道其他线程调用notity()方法,才可以继续运行。
调用Thread.join()方法,线程会一直阻塞,直到目标线程执行完成。(join的本质是让调用线程wait方法在当前线程对象实例上)。
调用Thread.yeild()方法,线程会让出cpu,但是还是会竞争cpu,只是一种谦让。可以用在重要工作完成后,对cpu资源的一种谦让。
Ø 死亡状态
Run方法执行完成或出现异常情况,线程便结束了,也就进入了死亡状态。还有一种方式可以让线程处于死亡状态,那就是调用Thread.stop()方法。
笔者提醒,最好不要使用stop方法来停止线程,会引起一些意想不到的事情。如果需要停止一个线程,可以使用一个变量作为开关来停止线程。
- java学习笔记(二)多线程
- Java多线程学习笔记(二)
- Java多线程学习笔记(二)
- Java多线程学习笔记(二)
- java多线程学习笔记(二)
- Java多线程学习笔记(二)
- 学习笔记二:java多线程
- 多线程学习笔记(二)
- 学习笔记(二)多线程
- Java学习笔记(二):枚举和多线程
- Java学习笔记之——多线程(二)
- JAVA学习笔记--多线程(二)线程常用方法
- Java学习笔记——多线程(二)
- java多线程学习(二)
- java多线程学习(二)
- java多线程学习(二)
- java多线程学习(二)
- java多线程学习(二)
- Redis源码剖析--压缩列表
- 用位运算实现四则运算之加减乘除(用位运算求一个数的1/3)
- 打印华氏温度与摄氏温度对照表
- CoreSeek
- Spring IOC(转载)
- java多线程学习笔记(二)
- HTTP详解
- tornado--打印block日志
- Sublime Text 3 快捷键汇总
- 【Java】Filter过滤器中,在chain.doFilter(request,response)后若有重定向或转发语句
- OpenBabel2.4.1转换mol2格式到pdbqt格式
- 二分法查找
- 个人项目代码存放
- 循环语句