为什么线程被称为轻量级进程?

时间:2014-10-05 08:09:14

标签: java multithreading lightweight-processes

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

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

你可以这样称呼它,因为一个线程就像一个进程一样,是一种拥有并行,一致的执行流的方法。但是与进程相反,线程与同一进程中的其他线程共享相同的内存,而不是拥有完全独立的内存。