zoukankan      html  css  js  c++  java
  • 为什么要使用多线程,多进程?

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

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


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

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

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

    什么情况下使用多线程?

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

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

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

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

  • 相关阅读:
    1101-Trees on the Level
    1099-移动小球
    1096-组合数
    Windows环境配置Apache+Mysql+PHP
    ArtDialog简单使用示例
    实现数字与字母的随机数
    SQLServer2005:在执行批处理时出现错误。错误消息为: 目录名无效
    sql语句总结
    在SQL SErver中实现数组功能
    aspnet_regiis.exe 的用法
  • 原文地址:https://www.cnblogs.com/liuwei0824/p/15492574.html
Copyright © 2011-2022 走看看