lov*_*ing 0 c++ linux multithreading
我听说linux进程比windows进程"轻量级".
Linux进程更像是Windows中的"线程".
因此,Oracle数据库等应用程序受到Linux中的多进程和Windows中的多线程的支持.
那么,这种"轻量级"是什么意思呢?
"轻量级"意味着在Linux上创建新流程的成本低于在Windows上创建新流程的成本.成本一词基本上意味着必要的时间和操作系统资源.
Linux进程通过调用fork(2)启动一个新进程.这会创建一个新进程,但不会复制内存,因此非常快.而是将新进程的内存标记为写入时的副本,以便如果新进程开始更改其地址空间,则仅复制所触摸的页面.由于这种方法的速度,应用程序可以快速生成自己的新实例来处理传入的工作.它还具有优于线程的优势,如果子进程崩溃,它不会取消父进程.
Windows不支持fork,启动新进程的唯一方法是启动它的全新副本.这意味着即使进程即将启动自身的新实例,操作系统也必须将新进程视为完全独立的进程,并且无法使用当前正在运行的进程的页面.因此,启动新进程所需的时间比Linux要长.
| 归档时间: |
|
| 查看次数: |
453 次 |
| 最近记录: |