多线程处理,虽然减少了CPU的浪费,但是,线程间的切换会导致开销增大,如何减少线程的切换
1、无锁并发编程:多线程竞争锁时,会引起上下文切换,所以多线程处理数据时,采用一些方法来避免使用 锁,如将数据的ID按照Hash算法来取模分段,不同的线程处理不同的段
2、CAS算法:Java的Atomic包使用CAS算法更新数据,所以不需要加锁
3、使用最少线程:避免创建不需要的线程,比如任务很少,但是创建很多线程,这样会导致大量线程处于等待状态。
4、协程:在单线程里实现多任务的调度,并在单线程里维持多个任务间的切换



