Linux和Windows进程

来源:互联网 发布:手机智能排班软件 编辑:程序博客网 时间:2024/04/29 01:08

    《Unix编程艺术》倡导多进程架构,书中认为“相对独立地址空间的轻量级进程,线程是个糟糕的替代;线程是那些进程生成昂贵、IPC功能薄弱的操作系统的概念”;“基于线程的程序不仅产生普通的竞争问题,而且产生了新一类bug:时序依赖。”。确实Unix对线程确实不怎么看重,属于Unix文化范畴的Nginx、Python和Chrome都采取多进程的策略。Nginx默认情况下使用多进程模型,在生产环境下也不开启多线程(已经向淘宝网相关技术人员求证过)。Python引入GIL锁使得Python上的多线程是伪多线程,但是这大大提高了单线程程序的效率。Chrome是第一个采用多进程架构的浏览器,这种新架构不仅证明了多进程也可以拥有非常快的速度,并且具有更高的安全性。Chrome在效率和安全性上都是当前浏览器领域的翘楚。对于Linux而言,确实没有太多必要使用多线程。主要有以下原因:

        1、Linux本身采用的是轻量级进程作为线程。创建线程的开销同创建进程的开销差不多。

        2、线程频繁地竞争临界资源导致效率低下。

        3、Linux拥有高效的IPC功能。通过共享内存,进程可以高效共享数据。

        4、多进程架构安全性更佳。

    下面分别测试了Windows和Linux创建进程的速度。Unix是在不断发展过程引入多线程功能的,Windows则是作为多线程操作系统而设计。可以预见Unix创建进程的速度会比Windows快得多。

   

0 0