1、java是天生的多线程
2、创建线程的方式有两种(Thread源码中有注释)
3、中断线程
(1)stop()会直接杀掉线程,容易出现程序崩溃;
(2)interrupt()发出中断线程通知,并且修改中断标志位为true;
(3)interupted()静态方法,获取当前线程中断标志位,并且修改中断标志位为false;
(4)isInterrupter()获取当前线程中断标志位。
(5)sleep() wait()等抛出中断异常,会修改中断标志位为false,(为了让程序员自己决定是否停止线程,并且可以有时间做是否资源的操作)代码如图
1.png
4、线程状态
2.png
5、yield()让出cpu执行劝,重新进入就绪状态,等待cpu时间片再次轮转到,不会释放锁
6、join()线程的串行执行
7、守护线程中finally不一定执行
3.png
8、wait() 和 notify()/notifyAll()简单使用:
4.png
***举例
https://blog.csdn.net/azhegps/article/details/63031562