Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么线程被称为轻量级进程?_Java_Multithreading_Lightweight Processes - Fatal编程技术网

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

Java 为什么线程被称为轻量级进程?,java,multithreading,lightweight-processes,Java,Multithreading,Lightweight Processes,在阅读大多数java教程时,他们提到线程是轻量级进程。我知道线程创建过程中发生了什么,但我没有得到线程的定义。在大多数情况下,我也回答了这个问题。但这也让我感到困惑。无法理解“轻量级流程”背后的真实想法。有人能用最简单的方式解释“线程是轻量级进程”的含义吗?你们可以这样称呼它,因为线程和进程一样,是一种并行、并发的执行流。但与进程相反,一个线程与同一进程中的其他线程共享相同的内存,而不是完全独立的内存。您可以这样称呼它,因为线程与进程一样,是一种并行、并发执行流的方式。但与进程相反,一个线程与同

在阅读大多数java教程时,他们提到线程是轻量级进程。我知道线程创建过程中发生了什么,但我没有得到线程的定义。在大多数情况下,我也回答了这个问题。但这也让我感到困惑。无法理解“轻量级流程”背后的真实想法。有人能用最简单的方式解释“线程是轻量级进程”的含义吗?

你们可以这样称呼它,因为线程和进程一样,是一种并行、并发的执行流。但与进程相反,一个线程与同一进程中的其他线程共享相同的内存,而不是完全独立的内存。

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

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

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

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

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

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

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

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

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

ok亲爱的。共享内存意味着其他线程也可以访问该内存。但我们为什么说“重量轻”?线不能有高/大重量吗?线程不能执行非常繁重的进程吗?@Maduri light-weight在这个上下文中意味着创建线程或在线程之间切换执行所涉及的开销通常比使用单独的进程要少得多。在这两种情况下,开销的确切数量在很大程度上取决于操作系统。@ThomasStets我想你在某种程度上解决了我的问题。谢谢,亲爱的。“创建线程或在线程之间切换执行”这意味着轻量级并不意味着线程必须完成的任务数量。我说的对吗?轻重量意味着切换或执行之间的负载?另一个问题是,如果该线程有很多任务,那么执行如何变得高效/轻量级?@Maduri它实际上意味着,操作系统创建线程的速度比创建进程的速度快得多,并且在线程之间切换的速度比进程之间切换的速度快得多。这意味着,您的程序逻辑需要更多的CPU时间。@ThomasStets Thanx lot亲爱的。我想到了:)你解决了我的大问题。祝你今天愉快:)。好的,亲爱的。共享内存意味着其他线程也可以访问该内存。但我们为什么说“重量轻”?线不能有高/大重量吗?线程不能执行非常繁重的进程吗?@Maduri light-weight在这个上下文中意味着创建线程或在线程之间切换执行所涉及的开销通常比使用单独的进程要少得多。在这两种情况下,开销的确切数量在很大程度上取决于操作系统。@ThomasStets我想你在某种程度上解决了我的问题。谢谢,亲爱的。“创建线程或在线程之间切换执行”这意味着轻量级并不意味着线程必须完成的任务数量。我说的对吗?轻重量意味着切换或执行之间的负载?另一个问题是,如果该线程有很多任务,那么执行如何变得高效/轻量级?@Maduri它实际上意味着,操作系统创建线程的速度比创建进程的速度快得多,并且在线程之间切换的速度比进程之间切换的速度快得多。这意味着,您的程序逻辑需要更多的CPU时间。@ThomasStets Thanx lot亲爱的。我想到了:)你解决了我的大问题。祝你今天愉快:)@PaRiMaLRaJ我看到了。但这并没有给我一个清晰的概念。线不能有更多的重量吗?线程不能有很多进程要完成吗?要完成的大量任务是否意味着重大的过程?这个答案并没有解决我的问题。@PaRiMaLRaJ我看到了。但这并没有给我一个清晰的概念。线不能有更多的重量吗?线程不能有很多进程要完成吗?要完成的大量任务是否意味着重大的过程?这个答案并没有解决我的问题。