为什么说线程是一个“轻量级的过程”在技术上是不正确的?

时间:2016-10-16 14:30:30

标签: java parallel-processing operating-system distributed-programming

在我的Java分布式编程课程中,我的老师问了这个问题。他认为,即使这是一个常用的定义,也不完全正确 什么东西可以使一个线程被视为一个重量级的过程?

2 个答案:

答案 0 :(得分:0)

线程和进程之间存在明显差异 - 两个或多个线程共享分配给进程的内存空间,而分配给2个进程的内存空间是分开的。

  

什么东西可以使一个线程被视为一个   重量级的过程?

同样,线程与进程不同,所以这个问题在技术上仍然是不正确的。

答案 1 :(得分:-3)

重量轻/重量轻是指它们需要多少资源以及切换任务的成本。在Linux上,线程也被视为具有自己的进程ID的进程,但是它不会像使用现有线程共享内存那样添加每个资源。

更轻量级的线程版本是使用continuation。对于短调用堆栈,这可能是最便宜的,因为它是完全用户空间实现。

线程比进程更轻。但...

  • 共享工作的重量更轻,在某些情况下线程很昂贵。
  • 这不是一个真正的过程(Linux假装一个线程在某些方面是一个过程)