问题八:为什么要写多进程、多线程程序?这两者之间有何不同?该如何区分?

问题八:为什么要写多进程、多线程程序?这两者之间有何不同?该如何区分?

因为现在的PC机或者服务器都是多核的CPU,一次可以并发执行多个线程。如果程序中还使用单线程 / 单进程,没有有效地使用到CPU资源,对CPU资源是一种浪费。

一般编写多线程、多进程程序,线程或者进程的数量是和当前CPU的核心数量是一样的。比如Apache、mina或者Netty网络库,这样能发挥CPU多核的效率,能够使多个进程或者线程并发执行。

 

由于进程占用的资源比较大,而线程占用的资源比较少。所以在多进程和多线程程序中,随着CPU调度进程,进程上下文切换所花费的时间效率远远高于线程。

因为线程比较轻量、占用资源少,所以上下文切换快。多进程程序各进程之间数据共享、进程通信、进程互斥等操作非常复杂且不易实现。而线程由于是共享进程空间的,所以共享堆和.text、.data、.bss,因此线程之间的共享数据非常方便,也方便线程通信(notify、notifyAll、wait)和互斥(锁)的实现,所以大多数使用多线程程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值