您的位置:首页 > 运维架构 > Linux

Linux和Windows进程

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

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

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

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

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

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

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  windows linux内核