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倍)。

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

  • 相关阅读:
    linux下syscall函数 间接系统调用
    多线程 概述
    linux 信号与多线程
    linux ps命令介绍
    终端 进程关系
    shell 前台进程组的选择
    try catch finally的执行顺序到底是怎样的?
    OpenCV中遇到Microsoft C++ 异常 cv::Exception
    hdu1087Super Jumping! Jumping! Jumping!(最大递增序列和)
    [置顶] java Gui 键盘监听事件
  • 原文地址:https://www.cnblogs.com/liuwei0824/p/15492574.html
Copyright © 2011-2022 走看看