多进程与多线程的区别

据说这个问题很重要,要从多个方面总结。

参考

多线程和多进程的区别(小结)

多线程还是多进程的选择及区别

关于进程和线程对于全局变量共享的问题学习总结

0、教科书上的一句话

进程是资源分配的最小单位,线程是CPU调度的最小单位。

1、共享的变量与私有的变量

同一进程的不同线程会共享进程内存空间中的全局区和堆。

线程私有的是栈和寄存器。

因此。局部变量都是线程私有的。

全局变量、静态变量、分配于堆的变量都是共享的。

2、通信

进程间通信是IPC。包括:

  • 管道(pipe)与命名管道(named pipe)
  • 消息队列(message queue)
  • 信号量(signal)
  • 共享内存(share memory)
  • 信号量(semaphore)
  • 套接口(socket)

线程因为共享全局变量、堆,可以直接通过这些变量通信。

3、创建、销毁、上下文切换

多进程的创建、销毁、上下文切换都比较复杂,速度慢。

多线程的创建、销毁、上下文切换相对比较简单,速度快。

4、可靠性

多进程之间相互不影响。

多线程中的一个线程挂掉会导致整个进程挂掉。

5、分布式

多进程可以多核分布式、多机器分布式。

多线程只能多核分布式,不能多机器分布。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值