1、多线程时,会引起上下文切换,带来CPU的损耗
直接消耗包括: CPU寄存器需要保存和加载, 系统调度器的代码需要执行, TLB实例需要重新加载, CPU 的pipeline需要刷掉;
间接消耗指的是多核的cache之间得共享数据, 间接消耗对于程序的影响要看线程工作区操作数据的大小).
2、如何减少上下文切换
a)无锁并发
b)CAS
c)减少线程
d)协程
1、多线程时,会引起上下文切换,带来CPU的损耗
直接消耗包括: CPU寄存器需要保存和加载, 系统调度器的代码需要执行, TLB实例需要重新加载, CPU 的pipeline需要刷掉;
间接消耗指的是多核的cache之间得共享数据, 间接消耗对于程序的影响要看线程工作区操作数据的大小).
2、如何减少上下文切换
a)无锁并发
b)CAS
c)减少线程
d)协程