企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 并发与并行 > 原文: [https://howtodoinjava.com/java/multi-threading/concurrency-vs-parallelism/](https://howtodoinjava.com/java/multi-threading/concurrency-vs-parallelism/) **并发**表示多个任务,这些任务在重叠的时间段内以无特定顺序启动,运行和完成。 **并行性**是指多个任务或唯一任务的多个部分在字面上同时运行的情况,例如在多核处理器上。 请记住,并发和并行性不是一回事。 让我们更详细地了解当我说**并发与并行**时的意思。 ## 并发 当我们谈论至少两个或更多任务时,并发本质上是适用的。 当一个应用程序实际上可以同时执行两个任务时,我们将其称为并发应用程序。 尽管这里的任务看起来像是同时运行的,但实际上它们可能不一样。 它们利用操作系统的 **CPU 时间分段**特性,其中每个任务运行其任务的一部分,然后进入等待状态。 当第一个任务处于等待状态时,会将 CPU 分配给第二个任务以完成其一部分任务。 因此,操作系统根据任务的优先级分配 CPU 和其他计算资源,例如记忆; 依次处理所有任务,并给他们完成任务的机会。 对于最终用户,似乎所有任务都是并行运行的。 这称为并发。 ## 并行 并行不需要两个任务存在。 通过使用 CPU 的多核基础结构,通过为每个任务或子任务分配一个内核,它实际上可以同时运行部分任务或多个任务。 并行性本质上要求具有多个处理单元的硬件。 在单核 CPU 中,您可能会获得并发性,但不能并行化。 ## 并发与并行之间的差异 现在,让我们列出并发和并行之间的显着差异。 并发是两个任务可以在重叠的时间段内启动,运行和完成的时间。 并行是指任务实际上在同一时间运行,例如。 在多核处理器上。 并发是独立执行进程的组成,而并行是同时执行(可能相关)计算。 并发是关于**一次处理很多事物**的问题。 并行性是关于**一次完成很多事情**。 一个应用程序可以是并发的,但不能是并行的,这意味着它可以同时处理多个任务,但是没有两个任务可以同时执行。 一个应用程序可以是并行的,但不能是并发的,这意味着它可以同时处理多核 CPU 中一个任务的多个子任务。 应用程序既不能是并行的,也不能是并发的,这意味着它一次顺序地处理所有任务。 一个应用程序可以是并行的,也可以是并发的,这意味着它可以同时在多核 CPU 中同时处理多个任务。 就是**并发与并行**,这是 [Java 多线程](//howtodoinjava.com/java-concurrency-tutorial/)概念中非常重要的概念。 学习愉快!