线程基础
什么是线程?
- 系统中的一个程序就是一个进程,每个进程中的最基本的执行单位,执行路径就是线程,线程是轻量化的进程。
什么是纤程?
- 绿色线程,由用户自己进行管理的而不是系统进行管理的,我理解就是一个进程里面可以有多线程,一个线程里面有多进程(go里面叫协程)
什么是线程切换(上下文切换)?
- 线程是按照CPU分的时间片进行执行的,如果线程A用完了CPU的时间片,那么CPU就会去执行另外的线程,那么线程A就要保存自己的执行状态以便在进行加载运行,保存以及再加载这个过程就叫线程切换
什么是多线程?
- 简单理解就是在多CPU时代可以使用多线程并行来提高CPU的利用率,以及提高系统性能
为什么使用多线程
- 从计算机底层来说:线程是轻量级的进程,是程序执行的最小单位,现成之间的切换和调度远远小于进程,另外多CPU意味着多线程可以并行执行,减少线程切换的成本
- 从当代互联网来说:现在的系统动不动就要求百万级千万级的并发量,而多线程正式实现高并发的基础,利用好多线程机制可以大大提高系统整体的并发能力以及性能
创建线程的方式
- 创建线程的五种方式
线程的生命周期
线程优雅中断
-
Thread.interrupt方法
-
Thread.interrupted()静态方法:查询当前线程是否被打断过,并重置打断标志
-
isInterrupted方法:判断是否中断
-
判断是否设置了中断标志位然后完成线程终端操作,上述的标志位只是进行设置而已,不会真正停止线程。