V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yxaaa123
V2EX  ›  Java

并发到底是什么意思???

  •  
  •   yxaaa123 · 2016-01-19 10:05:01 +08:00 · 6973 次点击
    这是一个创建于 3231 天前的主题,其中的信息可能已经有所发展或是发生改变。

    “高并发”到底是什么意思啊?是关于什么的指标???

    第 1 条附言  ·  2016-01-19 10:42:23 +08:00
    不是说编程上的并发。。。
    44 条回复    2016-01-20 08:16:35 +08:00
    sjtlqy
        1
    sjtlqy  
       2016-01-19 10:07:50 +08:00   ❤️ 1
    先把业务写干净再来谈这个
    yxaaa123
        2
    yxaaa123  
    OP
       2016-01-19 10:15:12 +08:00
    @sjtlqy 看来你也不懂。。。
    Wangxf
        4
    Wangxf  
       2016-01-19 10:31:08 +08:00
    我理解,并是什么意思?就是一起,发就是发请求,合起来就是一起发请求,高就是一起发请求的数量多,这种东西自己想下然后 Google 一下一大堆吧??
    b821025551b
        5
    b821025551b  
       2016-01-19 10:32:17 +08:00
    貌似操作系统这门课讲的很详细。
    tabris17
        6
    tabris17  
       2016-01-19 10:34:19 +08:00
    并发就是同时执行多个相同的任务
    shyling
        7
    shyling  
       2016-01-19 10:40:25 +08:00
    并发不是并行。并行是指同时进行多个任务。并发指的是同时**应对**多个任务
    yxaaa123
        8
    yxaaa123  
    OP
       2016-01-19 10:41:26 +08:00
    @Wangxf 我自己也查过,但是怎么说的都有啊!比如说一个系统可以支撑多少多少并发,但是这个并发的概念是什么?每秒能支撑的连接请求数量?可以维持的连接数量?每秒能够处理的消息数量??
    shyling
        9
    shyling  
       2016-01-19 10:43:01 +08:00
    可以参考一下这个: http://www.ituring.com.cn/article/118825
    jhaohai
        10
    jhaohai  
       2016-01-19 10:45:18 +08:00
    高并发就是指系统综合的吞吐量吧
    yxaaa123
        11
    yxaaa123  
    OP
       2016-01-19 10:45:59 +08:00
    @jhaohai 你这个太笼统了。。。
    airqj
        12
    airqj  
       2016-01-19 10:51:18 +08:00
    你和你的好基友
    找个女的 3P
    一个地方只能轮流来
    这就是并发
    airqj
        13
    airqj  
       2016-01-19 10:52:07 +08:00
    好像说错了 哈哈:)其实我也不懂
    Cu635
        14
    Cu635  
       2016-01-19 10:53:41 +08:00
    @tabris17
    错了,打回去重新学习操作系统。

    网络上并发和操作系统的并发定义是一样的。
    ryanking8215
        15
    ryanking8215  
       2016-01-19 10:54:19 +08:00   ❤️ 1
    wy315700
        16
    wy315700  
       2016-01-19 10:55:30 +08:00
    并发和并行,经常遇到的概念。。
    baozijun
        17
    baozijun  
       2016-01-19 10:55:50 +08:00
    并行是多个任务同时进行,并发是多个任务交替执行,一个接一个的,等待的是同一个资源,可以看下 java 入门必看书--Java 并发编程实战哇
    tidezyc
        18
    tidezyc  
       2016-01-19 10:58:02 +08:00
    高并发通过 cpu 时钟切换减少 stop-the-world
    jkm
        19
    jkm  
       2016-01-19 10:58:11 +08:00
    网络并发通常值两个指标, 1 个是同时支持的网络链接数量,另一个是 1s 内同时处理的请求数目。
    visonme
        20
    visonme  
       2016-01-19 10:58:28 +08:00
    一种有状态的运动
    iburu
        21
    iburu  
       2016-01-19 10:58:57 +08:00
    concurrency
    joshz
        22
    joshz  
       2016-01-19 11:05:57 +08:00
    其实就是有没有多个 CPU 核心的区别。单个只能分时复用并发,多个就可以并行了,当然也可以同时并发。不知道这样理解对不对。
    cdnzz
        23
    cdnzz  
       2016-01-19 11:09:19 +08:00
    现在好多企业都有大量的视频和图片,导致空间数据暴增,他们更多的要求云服务能给他们带来高并发的解决能力,简单就是同时进行多个任务,但是用户访问速度不变或者能更快访问这类。
    lovepython
        24
    lovepython  
       2016-01-19 11:18:49 +08:00
    并发就是一个水龙头,好几个人去接水喝

    并行就是一人一个水龙头,随便喝
    lovepython
        25
    lovepython  
       2016-01-19 11:22:42 +08:00
    @lovepython 然后又引发了 一秒内这个水龙头可以让多少人接水喝 一秒内水的量是多少
    sjtlqy
        26
    sjtlqy  
       2016-01-19 12:35:32 +08:00
    磁盘,网络,CPU, 具体的话有网络socket链接,有数据库事务查询的,这个太大了
    Andy1999
        27
    Andy1999  
       2016-01-19 12:40:33 +08:00 via iPhone
    QPS
    xcaspar
        28
    xcaspar  
       2016-01-19 13:11:49 +08:00
    并发是同一时间处理多个任务,但任务需要排队处理,也就是一个时间点只能干一件事
    并行是同一时间同时处理多个任务,也就是同一时间点可以干多件事情。
    clino
        29
    clino  
       2016-01-19 13:13:09 +08:00 via Android
    并发不一定是并行的 但并行肯定能并发
    noahzh
        30
    noahzh  
       2016-01-19 13:35:34 +08:00
    你同时回答不同人的问题就是并发.
    你一次回答大家的问题就是并行.
    BOYPT
        31
    BOYPT  
       2016-01-19 14:14:40 +08:00
    再说计算机性能的语境下,并发必须规划一个讨论的时间间隔,因为真正的并发估计要到量子计算机里面才能考虑。
    比如说, HTTP 服务器 1 秒内处理的请求数 Request per second 就是一个通用指标,是 1 秒内完成 Req -> Resp 过程的次数;
    yads1983
        32
    yads1983  
       2016-01-19 14:21:30 +08:00   ❤️ 1
    并发是同时支持多个来自不同方的、相同的请求 /指令,
    并行是同时支持多个来自同一方 /不同方的、不同的请求 /指令。

    区别点:
    并发:同样的请求 /指令
    并行:不同的请求 /指令
    suliuyes
        33
    suliuyes  
       2016-01-19 14:34:38 +08:00   ❤️ 1
    大部分都没回答楼主的问题。楼主想问的应该是“老板或者客户要求你这个系统要能支持 XXX 的并发数”或者“某某系统能支持 XXX 的并发数”这里面并发的含义和标准吧?

    我个人观点如下,说的可能不对欢迎大家指正:
    打个不是很“准确”的比方,秒杀活动的时候,同一时间会有不同地方的很多个用户同时点击抢购按钮,那么“理论上”某些用户发起请求到达服务器的时间差是无限趋近于 0 的,可以等同于同时到达服务器,那么服务器同时要去应对和请求这些用户的请求,而不管你是多核并行处理还是单核序列处理,这个同时发起请求的用户数(这里先假设每个用户瞬时只有一个请求)肯定有个上限,从一开始能轻松处理到处理,到一个处理峰值极限,然后开始到缓慢(记住响应时间的概念),之后服务器就挂了。因此这里就有个标准说要支持多少并发数就看你怎么去定义网站正常访问的范围。然后紧接着就牵涉出另外指标概念,吞吐量,如 TPS , QPS ……这个网上就很好找了
    cYcoco
        34
    cYcoco  
       2016-01-19 14:37:53 +08:00
    @shyling 正解
    cYcoco
        35
    cYcoco  
       2016-01-19 14:40:41 +08:00
    @airqj
    并发和串行是相对的吧? 1V3 过程中
    如果你是一个妹子一个妹子来 那就是串行
    如果你是这里弄一下 那个弄一下 让三个妹子都觉得很爽 那就是并发
    如果你长了 3 个 XX 那就是并行。。。。
    codeyung
        36
    codeyung  
       2016-01-19 14:55:11 +08:00
    楼上好污
    airqj
        37
    airqj  
       2016-01-19 15:17:09 +08:00
    @cYcoco
    兄弟你这解释错了吧?
    "如果你是这里弄一下 那个弄一下 让三个妹子都觉得很爽",这不就是操作系统的时间片轮询调度吗?
    对操作系统而言,进程只有并行执行,没有并发执行吧?
    哈哈
    airqj
        38
    airqj  
       2016-01-19 15:20:21 +08:00
    并发 只是 服务器能够在允许的时间范围内响应请求
    并行 一般是操作系统内部的事儿....
    想想就是这样了 :)
    irobbin
        39
    irobbin  
       2016-01-19 15:42:08 +08:00
    并发:同时容纳多少客户端使用
    并行:同时容纳多少客户端同时使用
    liuyanjun0826
        40
    liuyanjun0826  
       2016-01-19 15:57:11 +08:00
    代表两个意思,要不然是极有效率的程序,要不然是极多余的功能。
    cYcoco
        41
    cYcoco  
       2016-01-19 17:00:44 +08:00
    @airqj 我是这么理解的 单核 CPU 开多线程 对于用户来说是并发的 但是实际中 CPU 也是串行执行的
    多核 CPU 才能实现并行吧。
    cYcoco
        42
    cYcoco  
       2016-01-19 17:04:57 +08:00
    @airqj 并发是指能够处理多见事的能力 我觉得既然三位美女都爽了 应该称为并发吧 : )
    robinlovemaggie
        43
    robinlovemaggie  
       2016-01-19 22:08:22 +08:00
    bobbychen
        44
    bobbychen  
       2016-01-20 08:16:35 +08:00
    @cYcoco 确实很污,但是说的没错。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2555 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 04:55 · PVG 12:55 · LAX 20:55 · JFK 23:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.