说说Python多线程与多进程的区别?


公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!

小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。

废话不多说,开始今天的题目:

问:说说Python多线程与多进程的区别?

答:

1、多线程可以共享全局变量,多进程不能

2、多线程中,所有子线程的进程号相同;多进程中,不同的子进程进程号不同

3、线程共享内存空间;进程的内存是独立的

4、同一个进程的线程之间可以直接交流;两个进程想通信,必须通过一个中间代理来实现

5、创建新线程很简单;创建新进程需要对其父进程进行一次克隆

6、一个线程可以控制和操作同一进程里的其他线程;但是进程只能操作子进程

两者最大的不同在于:在多进程中,同一个变量,各自有一份拷贝存在于每个进程中,互不影响;而多线程中,所有变量都由所有线程共享 。

下面分别来说说两者的具体介绍:

1、多线程

在Python的标准库中提供了两个模块:_thread和threading,_thread是低级模块不支持守护线程,当主线程退出时,所有子线程都会被强行退出。而threading是高级模块,用于对_thread进行了封装支持守护线程。在大多数情况下我们只需要使用threading这个高级模块即可。

说说Python多线程与多进程的区别?

大家如果要看Python多线程代码的,篇幅有限,可以参考这篇文章:
https://www.jianshu.com/p/6f14d1874f7f

2、多进程

多进程是multiprocessing模块提供远程与本地的并发,在一个multiprocessing库的使用场景下,所有的子进程都是由一个父进程启动来的,这个父进程成为master进程,它会管理一系列的对象状态,一旦这个进程退出,子进程很可能处于一个不稳定的状态,所以这个父进程尽量要少做事来保持其稳定性 。

说说Python多线程与多进程的区别?


如果要看Python多进程案例,篇幅有限,大家可以参考这篇文章:
https://www.jianshu.com/p/d648f160543b

如果对于参考答案有不认同的,大家可以在评论区指出和补充,欢迎留言!

关注小猿公众号,每天学习一道题

说说Python多线程与多进程的区别?

相关文章:

  • 2021-11-11
  • 2021-11-22
  • 2022-02-25
  • 2022-02-09
  • 2021-10-17
猜你喜欢
  • 2022-01-17
  • 2022-12-23
  • 2022-01-14
  • 2021-08-06
  • 2021-11-11
相关资源
相似解决方案