进程vs线程

      首先要实现多任务,通常设计Master-Worker模式Master负责分配任务,Worker负责执行任务,多任务环境下,通常是一个Master,多个Worker。

多进程:

      

  • 用多进程实现Master-Worker ,主进程就是Master,其他进程就是Worker。
  • 多进程模式最大的优点是稳定性高,因为一个子进程崩溃了,不会影响主进程和其他子进程。
  • 缺点是创建进程的代价大,在Unix/Linux、系统下可以用fork调用,在Windows下创建进程开销巨大。另外操作系统同时运行的进程数也是有限的,在内存和Cpu的限制下,如果有几千个进程同时运行,操作系统连调度都会成问题。

多线程:

    

  • 用多线程实现Master-Worker ,主线程是Master,其他线程就是Worker。
  • 多线程的优点是 在Windows下,多线程的效率比多进程要高。
  • 多线程致命的缺点是任何一个线程挂掉都可能直接造成整个进程崩溃,因为所有线程共享进程的内存。
  • 在windows上,如果一个线程执行的代码出了问题,提示为“该程序执行了非法操作即将关闭”,其实是某个线程出了问题,但是操作系统会强制关闭整个进程。
  • 在windows下 多线程的效率比多进程高,,所以微软的IIS服务器默认采用多线程模式。由于多线程存在稳定性问题,IIS的稳定性就不如Apache

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值