多进程和多线程区别

大白话理解下两者的区别

1. 多进程:每个进程就像系统中的一个业务线,工厂的一个车间。比如你在电脑上,可以边听音乐,边聊qq,打开一个虾米音乐就开启了一个进程,打开一个qq就开启了另外一个进程;

再比如一个溯源系统,一个业务是流水线上的产品要不断被打码sweepCode()添加信息,另一个业务是每隔1分钟倒计时我要统计下这1分钟内被扫码的这些商品的合格率scheduleTask()。如果在单进程系统里比如用nodejs开发(不用cluster)的一个系统,1分钟倒计时结束后系统后台在执行scheduleTask()方法时,流水线sweepCode()就被阻塞处于等待状态,直到这一轮scheduleTask()方法执行结束,才能执行打码方法。

而这两个业务在逻辑上应该是异步互不影响的,流水线应该是不断打码不停,后台1分钟倒计时统计合格率也可以同时执行。这时候就需要开启多进程去解决这个问题,让不同业务(不同请求)可以异步执行。

 

2. 多线程:多线程是针对每个业务进程内部来说的,比如上面提到的流水线打码sweepCode()这个方法,流水线不可能只有一个扫码器,一般都会有多个人在同时扫码录入信息,那么就会有多个用户并发访问sweepCode()方法的情况出现,怎么提高系统的并发量和吞吐率tps,就要引入多线程。

总结一句不太严谨的话,多进程是为了让业务可以同时执行。多线程是为了让多用户可以同时使用某一功能业务。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值