概念
因为以下原因导致cpu不再执行当前线程,转而执行另一个线程代码
- 被动式上下文切换:
- 线程的cpu时间片用完了,时间片一般就是10~15ms
- 垃圾回收器,此时所有工作线程停止,直至垃圾回收线程处理结束
- 其它优先级高于当前执行线程的线程。 (上下文切换,推荐文章:https://blog.csdn.net/qq_36777191/article/details/112604108)
- 主动式上下文切换:
- 线程自己调用 sleep
- 线程自己调用 yield
- 线程自己调用 wait
- 线程自己调用 join
- 线程自己调用 park
- 线程自己调用 synchronized
- 线程自己调用 lock