即使是单核CPU也支持多线程执行玳码。
CPU通过给每个线程分CPU时间片来实现多线程。
CPU在执行多线程代码的时候会在切换前,保存上一个线程的状态以便切换回来时,继續执行
这种保存再加载的过程,就是一次上下文切换
任务少当上下文切换频繁的时候,多线程并不一定必单线程效率高
##如何减少上下攵切换
1、无并发编程:多线程竞争锁的时候会引起上下文切换,多线程处理数据的时候可以用一些办法来避免锁
2、CAS算法:CPU自旋,死循環乐观锁。不会锁总线
3、任务少的情况下,以尽量少的线程来执行
4、协程:在单线程里实现多任务的调度。并在单线程里维持多个任务时间的切换
1、避免一个线程同时获取多个锁
2、避免一个线程在锁内占用多个资源
发布了12 篇原创文章 · 获赞 0 · 访问量 55