Java 为什么说一根线就是一根“线”;“轻质工艺”;技术上不正确吗?

Java 为什么说一根线就是一根“线”;“轻质工艺”;技术上不正确吗?,java,parallel-processing,operating-system,distributed-programming,Java,Parallel Processing,Operating System,Distributed Programming,在我的Java分布式编程课程中,我的老师问了这个问题。他认为,即使这是一个常用的定义,也不完全正确。 哪些因素可以使线程被视为重负载进程?重负载/轻负载是指线程占用多少资源以及切换任务的成本有多高。在Linux上,线程也被视为具有自己的进程Id的进程,但是它使用的资源不如添加每个线程所使用的资源,而是与现有线程共享内存 线程的更轻版本是使用continuations。这可以是最便宜的短调用堆栈,因为它是一个完全的用户空间实现 线程比进程更轻。但是 还有更轻量级的共享工作,在某些情况下线程是昂贵

在我的Java分布式编程课程中,我的老师问了这个问题。他认为,即使这是一个常用的定义,也不完全正确。

哪些因素可以使线程被视为重负载进程?

重负载/轻负载是指线程占用多少资源以及切换任务的成本有多高。在Linux上,线程也被视为具有自己的进程Id的进程,但是它使用的资源不如添加每个线程所使用的资源,而是与现有线程共享内存

线程的更轻版本是使用continuations。这可以是最便宜的短调用堆栈,因为它是一个完全的用户空间实现

线程比进程更轻。但是

  • 还有更轻量级的共享工作,在某些情况下线程是昂贵的
  • 它实际上不是一个进程(Linux在某些方面假装线程是一个进程)

线程和进程之间有着明确的区别-两个或多个线程共享分配给进程的内存空间,而分配给两个进程的内存空间是分开的

什么东西可以使一个线程被视为一个线程 重型工艺


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

谢谢你的回答,如果你能进一步论证,那就太好了。@1z10你想知道什么。这是一个相当复杂的问题。只是如果它与正在创建的线程的数量有关,使它们被认为是沉重的负担,或者如果它与使用同步块的需要有关,或者可能与内核级别更深层的东西和开销/缺点有关。。。提前谢谢。@1z10查看我的更新答案。Linux上可以拥有的线程/进程数量是相同的。只有当您有多个线程时,才需要使用synchronized。您不能跨多个进程使用它。注意:进程可以有“共享内存”,但这不是默认值。您可以向老师询问正确的参考资料。。。。