• 为什么要使用多线程,多进程?


    举个栗子:我要快速装满一桶水,如果一个人向桶中加水需要耗时很久,如果多个人加水呢?结果速度变快了、效率提高了。
    很显然一个人干活不能满足我们的设计需要,使用多个就提升了速度并实现了并发不等待。

    使用多线程和多进程也是同理,就是为了提高程序执行效率,实现并发/并行。


    什么情况下使用多进程?
    大家都知道CPU的计算速度非常快,一个CPU同一时刻只能处理一个进程,如果程序中都是计算密集型任务,这类任务的特点是CPU消耗很大,

    那使用多进程可以充分的利用CPU资源,明显地提升程序执行效率。但是开启的进程越多,CPU花在任务切换的时间就越多,CPU的效率就越低,

    所以,要最高效地利用CPU,计算密集型任务同时进行的数量应当等于CPU的核心数。

    什么情况下使用多线程?

    如果程序中都是IO密集型任务,涉及到网络、磁盘IO的任务都是IO密集型任务,这类任务的特点是CPU消耗很少,

    任务的大部分时间都在等待IO操作完成(因为IO的速度远远低于CPU和内存的速度)。

    对于IO密集型任务,任务越多,CPU效率越高,但也有一个限度(一般为CPU数的2倍)。

    如果我们的程序没有很多的线程,我们也就没必要采购性能高的服务器,可以节约成本。

  • 相关阅读:
    urllib.request.urlretrieve()
    python2.X与python3.X爬虫常用的模块变化对应
    .net 发布程序时出现“类型ASP.global_asax同时存在于...”错误的解决办法
    批量引用iconfont字体图标到项目
    动态设置bootstrapswitch状态
    MD5加密过时方法替换
    SQL语句
    PHP中的闭包
    算法复杂度
    快速排序
  • 原文地址:https://www.cnblogs.com/liuwei0824/p/15492574.html
Copyright © 2020-2023  润新知