为了账号安全,请及时绑定邮箱和手机立即绑定

python多线程?

python多线程?

慕少森 2019-02-22 16:31:08
最近看书上写的,python解释器可以“运行”多个线程,但在任一时刻,只有一个线程在运行。 我不理解的是,既然任意时刻只有一个线程在运行,那为什么还是并发编程呢?这样的话两个线程运行的时间总和不还是两个线程的运行时间相加?但是实际上又不是。 请大家帮忙解惑一下,谢谢。
查看完整描述

2 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

多线程用途一般分为两种,密集计算和密集IO请求。
密集计算,瓶颈在于cup给这个计算的时间片和cpu能跑多快上,这时候一般通过多核并行处理,以及增加该计算的CUP时间片来达到加速计算。这时候python的多线程没什么卵用。反而会拖慢计算,因为进程的切换也是需要时间的。这部分时间就浪费了。
而IO计算。瓶颈在于你一个请求发送出去的等待时间,一般走internet的tcp请求怎么也要100毫秒,而单进程,时间就白白浪费在等待这个网络传输时延上面了。而多进程通过一次发出多个请求来缩短等待时间,比如你有10个请求跑去每个请求网络等待时间100ms处理10ms那么单线程需要1100ms,而多进程同时发出10个请求,基本算同时发出 都等待100ms然后处理虽说是多进程但是因为同时只有一个运行基本算100ms那么总共就200ms当你同时并发的连接熟练越多时候效率越高

查看完整回答
反对 回复 2019-03-04
  • 2 回答
  • 0 关注
  • 510 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信