并发和并行——一个一直以来的误解

本文澄清了并发与并行的概念,解释了它们在应用程序任务处理和任务内部处理上的不同。并发涉及多任务的同时处理,而并行关注任务的分解与同时执行。所有并行都是并发的一部分,Java的Stream特性展示了并行的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前一直以为并发和并行是对立的,在单CPU上多任务(看似)同时进行是并发,而在多CPU上多个任务同时跑叫并行。所以当我看到Java并发编程这种说法的时候一直有个疑惑,因为Java的多线程明明可以使用多个线程却被人称呼为并发。
事实上,并发和并行描述的并不是一个方面

As you can see, concurrency is related to how an application handles multiple tasks it works on. An application may process one task at at time (sequentially) or work on multiple tasks at the same time (concurrently).

Parallelism on the other hand, is related to how an application handles each individual task. An application may process the task serially from start to end, or split the task up into subtasks which can be completed in parallel.
所有的并行都是并发,但并非所有的并发是并行
Java中的stream是并行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值