多线程一定快吗?

1.上下文切换

CPU通过给线程分配CPU时间片来实现多线程执行的,也就是时间片轮转机制,CPU分配给每个线程的时间片非常短,所以我们才会感觉多个线程是同事执行的。
CPU在执行执行完一个时间片后会切换到下一个任务,切换之前会保存上一个任务的状态,以便下次切换回这个任务的时候可以加载到这个任务的状态,所以任务从保存到在加载的过程就是一次上下文切换。

2.上下文切换对多线程执行的影响

因为线程有创建和上下文切换,所以多线程执行并不一定比单线程快。如果说并发量在百万次的操作串行执行会比并发线程速度快。

3.如何减少上下文的切换

  • 无锁并发编程
    每个线程对应一个内存队列里的操作
  • CAS算法
  • 使用最少线程和使用协程
    尽量在单线程内实现多个任务的执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值