线程的上线文切换:
指的是线程之间执行权的切换
线程的上线文切换过于频繁是会影响程序性能的 , 我们减少不必要的上下文切换:
- 从业务上去减少上下文切换可以按照数据的id拆分或者hash拆分不同的线程处理不同的业务(服务器是多线程的情况下)
- 无锁编程 volatile 关键字 cas算法(Atomic 使用 的就是 volatile 关键字加 cas 不加锁自然就减少了切换时间)
- 使用线程池 :
对于耗时长并发度低的任务可以多一些线程
对于耗时短并发度高的任务可以少一些线程
对于耗时高并发也高的可以加机器和 队列