gpt4 book ai didi

java - 并发和多线程有什么区别?

转载 作者:行者123 更新时间:2023-11-30 08:05:23 24 4
gpt4 key购买 nike

并发和多线程有什么区别?并发只能在多核 cpu 中实现吗?谁能举个例子解释一下?

最佳答案

What is the differene between concurrency and multithreading?

并发描述了进程运行的方式。它们要么是顺序的(一个接一个)、并发的(能够“同时”取得进展,但不一定在同一时刻),要么是并行的(它们同时发生)。

多线程是一种分配单个执行线程的技术;它们本质上是轻量级进程,在共享父进程资源方面具有一些优势。

如果你仔细观察,多线程在并发和非并发系统上都是可能的。线程是轻量级进程(相对于进程而言);因此,在非并发系统上拥有多个线程不会导致并行编程。他们仍然会开始并运行,直到在另一个之前完成。在并发系统上,他们每个人都会在某个 CPU 时间获得公平的份额;他们将全部同时取得进展。

Is concurrency only possible in multicore cpu?

我想我们现在知道了,答案是否定的。进程的并发执行被认为是理所当然的,以至于它被广泛误解为并行性;一个更强大的工具。

举一个提供一些见解的例子,想想你的机器。它一直在做各种事情,您不会(希望如此)体验到它的性能有任何滞后。所有这些进程都同时运行,即使在单核机器上,用户也能感受到并行性(我知道因为我老了 :))。

但是归并排序呢?我们不能对两半数据同时执行两种合并排序吗?是的。但前提是我们有多个内核/CPU。

关于java - 并发和多线程有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35100102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com