<分区>
听说linux进程比windows进程“轻量级”。
Linux进程更像是windows中的“线程”。
因此,Oracle 数据库等应用程序在 linux 中实现了多进程,在 windows 中实现了多线程。
那么,这个“轻量级”是什么意思呢?
<分区>
听说linux进程比windows进程“轻量级”。
Linux进程更像是windows中的“线程”。
因此,Oracle 数据库等应用程序在 linux 中实现了多进程,在 windows 中实现了多线程。
那么,这个“轻量级”是什么意思呢?
最佳答案
“轻量级”是指在 Linux 上创建新进程的成本低于在 Windows 上创建新进程的成本。成本一词基本上是指所需的时间和操作系统资源。
Linux 进程通过调用 fork(2) 启动一个新进程.这会创建一个新进程,但不会复制内存,因此速度非常快。相反,新进程的内存被标记为 copy on write因此,如果新进程开始更改其地址空间,则只会复制接触到的页面。由于这种方法的速度,应用程序可以快速生成自己的新实例来处理传入的工作。与线程相比,它还有一个优势,即如果子进程崩溃,它不会关闭父进程。
Windows 不支持 fork
,启动新进程的唯一方法是启动它的全新拷贝。这意味着即使一个进程即将启动它自己的一个新实例,操作系统也必须将新进程视为一个完全独立的进程,并且将无法使用当前正在运行的进程的页面。因此,与在 Linux 上相比,启动一个新进程需要更长的时间。
关于c++ - 为什么linux进程比windows轻量级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21577051/