上下文切换又分为2种:让步式上下文切换和抢占式上下文切换。前者是指执行线程主动释放CPU,与锁竞争严重程度成正比,可通过减少锁竞争和使用CAS算法来避免;后者是指线程因分配的时间片用尽而被迫放弃CPU或者被其他优先级更高的线程所抢占,一般由于线程数大于CPU可用核心数引起,可通过适当减少线程数和使用协程来避免。
总结一下:
减少锁的使用。因为多线程竞争锁时会引起上下文切换。
使用CAS算法。这种算法也是为了减少锁的使用。CAS算法是一种无锁算法。
减少线程的使用。人物很少的时候创建大量线程会导致大量线程都处于等待状态。
使用协程。
转载https://blog.csdn.net/qq_34337272/article/details/79844051