zoukankan      html  css  js  c++  java
  • 并发执行程序的优势

    1、业务需求

    2、性能需要

    3、可简化任务调度

    4、并行程序在多核心CPU有优势:

    a、比如因为IO操作遇到了阻塞,CPU可以转去执行其他线程,这时并发的优点就显示出来了:更高效的利用CPU,提高程序的响应速度。

    b、java线程机制是抢占式的,会为每个线程分配时间片。

    c、由于I/O等待,CPU较空闲,通过多进程/多线程让CPU忙起来,提升处理速度。通过多路复用,利用I/O等待的时间进行运算,让CPU干活,提升处理速度。

    d、使用多路复用只能跑满一个核心,必须使用多进程/多线程才能充分利用多核。

    e、利用Map/Reduce模式将任务分发到许多网络节点上,同时并行计算,通过对每个节点的返回值进行归并计算得到最终结果。

    f、并发可以提高吞吐量:

    假设每个请求执行100ms,顺序执行10个请求共需要1s,单核服务器并发处理10个请求,假设平均分配时间片10ms,请求1到请求10将在900ms到100ms间执行完毕。吞吐量没有任何提高。并发越多,所有请求都变得非常缓慢。(考虑到任务的场景切换开销,吞吐量还会下降,需要超过1s才能执行完毕)。

    大多数web型应用都是IO密集型。

    执行请求100ms当中,可能有80ms花在IO上,只有20ms消耗CPU时钟周期,最好情况下,请求1到请求10将在190ms到280ms间执行完毕,吞吐量极大提高。

    IO密集型应用,大部分CPU花在等待IO上了,所以并发可以有效提高系统吞吐量。

    IO操作的延时远远高于CPU时钟周期内存访问,所以一旦web请求涉及IO操作,CPU处于wait状态,被浪费了。

     

  • 相关阅读:
    vb.net与XML之间的操作
    C#动态生成WORD文档并进行操作。
    Excel的VBA连接数据库方法
    C#动态生成EXCLE并进行添加内容
    c#与WORD之间的基本操作
    C#运用ADO.net动态创建excle并进行相应的数据修改显示
    USACOMother's Milk
    USACOArithmetic Progressions
    USACONumber Triangles
    USACOMilking Cows
  • 原文地址:https://www.cnblogs.com/szj666/p/11838270.html
Copyright © 2011-2022 走看看