在多线程处理任务的时候,线程的执行时间是由cpu分配了一个时间段,这个时间段称之为时间片,使得各个线程表面上看起来是并行执行的。
当一个线程让出cpu使用权,切换到另外一个线程执行的过程称之为多线程上下文切换。
Java中线程切换的原因有
1. 时间片到期,线程的时间片用完了,会切换线程执行。
2. 线程进入阻塞状态,可以参考线程的生命周期。
显然,如若多线程切换的频率过高,这是耗时的,会导致效率下降,所以要减少线程的上下文切换:
1. 无锁并发编程
2. cas算法
3. 使用适量线程
4. 协程