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



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

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

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新