1

在浏览大多数 Java 教程时,他们提到线程是轻量级进程。我知道线程创建中发生了什么,但我没有得到线程的定义。在stackoverflow中大部分时间也回答了这个问题。但这也让我感到困惑。无法理解“轻量级过程”背后的真正想法。谁能用最简单的方式解释“线程是轻量级进程”的含义?

4

3 回答 3

2

一个进程有不同的内存区域。根据操作系统的不同,有些可能是分组的、不存在的,甚至是子拆分的:

  • 代码
  • 内存(用于变量)
  • 堆(用于动态分配)

当您创建一个新进程时,系统必须分配所有这些。对于一个线程,只分配一个新的堆栈,内存的头部对同一进程的所有线程是通用的。

于 2014-10-05T10:07:52.127 回答
1

您可能会这样称呼它,因为线程与进程一样,是一种具有并行、并发执行流程的方式。但与进程相反,一个线程与同一进程中的其他线程共享相同的内存,而不是拥有完全独立的内存。

于 2014-10-05T08:13:20.077 回答
1

我猜想这种解释源于父进程生成的线程在内存中使用相同的地址空间这一事实。另一方面,每个进程都有自己的地址空间。基于这个事实,进程的上下文切换比线程的上下文切换要重得多。

于 2014-10-05T08:14:19.807 回答