java为什么线程被称为轻量级进程?
在阅读大多数java教程时,他们提到线程是轻量级进程。我知道线程创建过程中发生了什么,但我没有得到线程的定义。在大多数情况下,我也回答了这个问题。但这也让我感到困惑。无法理解“轻量级流程”背后的真实想法。有人能用最简单的方式解释“线程是轻量级进程”的含义吗
你可以在下面搜索框中键入要查询的问题!
在阅读大多数java教程时,他们提到线程是轻量级进程。我知道线程创建过程中发生了什么,但我没有得到线程的定义。在大多数情况下,我也回答了这个问题。但这也让我感到困惑。无法理解“轻量级流程”背后的真实想法。有人能用最简单的方式解释“线程是轻量级进程”的含义吗
# 1 楼答案
一个进程有不同的内存区域。根据操作系统的不同,有些可能被分组、不存在,甚至被拆分:
创建新流程时,系统必须分配所有这些。对于一个线程,只分配一个新堆栈,同一进程的所有线程都共用头上内存
# 2 楼答案
我猜这是因为父进程生成的线程在内存中使用相同的地址空间。另一方面,每个进程都有自己的地址空间。基于这一事实,进程的上下文切换比线程的上下文切换要重得多
# 3 楼答案
你可以这样称呼它,因为线程就像进程一样,是一种并行、并发的执行流。但与进程相反,一个线程与同一进程中的其他线程共享相同的内存,而不是完全独立的内存