线程是“轻量级”的,因为大部分开销已经通过创建其进程来完成。
我在其中一个教程中找到了这个。
有人可以详细说明它的确切含义吗?
最佳答案
线程是“轻量级”的说法 - 取决于平台 - 不一定可靠。
操作系统线程必须支持本地代码的执行,例如用 C 语言编写。因此它必须提供适当大小的堆栈,通常以兆字节为单位。因此,如果您启动了 1000 个线程(可能是为了支持 1000 个同时连接到您的服务器),在您开始执行任何实际工作之前,您的进程将需要 1 GB 的内存。
这在高度可扩展的服务器中是一个真正的问题,因此它们根本不使用线程,就好像它们是轻量级的一样。他们将它们视为重量级资源。他们可能会在池中创建有限数量的线程,并让它们从队列中获取工作项。
因为这意味着线程生命周期长且数量少,所以最好改用进程。这样您就可以实现地址空间隔离,并且不会出现资源耗尽的问题。
总而言之:警惕代表线程提出的“营销”声明。并行处理很棒(它将越来越重要),但线程只是实现它的一种方式。
关于c - 为什么线程被称为轻量级进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2267545/