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

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

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

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

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

答:

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

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

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

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

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

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

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

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

1、多线程

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

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

2、多进程

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

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

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

1、谈谈对 Python 和其他语言的区别?

2、谈谈对 Python3 和 Python2 的区别?

3、Python 的特点和优点是什么?

4、说说Python解释器种类以及特点?

5、说说4种常用编码的区别?

6、说说Python面向对象三大特性?

7、说说Python中有几种数据类型?

8、说说Python中xrange和range的区别?

9、Python变量、函数、类的命名规则?

10、说说Python可变与不可变数据类型?

11、说说Python模块主要分哪三类?

12、列举Python中的标准异常类?

13、Python中深拷贝与浅拷贝的区别?

14、Python中迭代器和生成器的区别?

15、Python可迭代对象怎么获取迭代器?

16、你了解什么是 Python 之禅么?

17、说说Python字典以及基本操作?

18、说说Python有几种字符串格式化?

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

(0)

相关推荐

  • 15道最常见的Python面试题!

    伴随着人工智能时代的到来,Python在企业中的应用越来越广泛,岗位需求量也越来越大,自然懂Python技术的人也在不断增加,如果你想要在众多人才中脱颖而出,面试的表现很重要.对此,为了让你快速通过面 ...

  • 第48天:初识 Python 多线程

    我们知道,多线程与单线程相比,可以提高 CPU 利用率,加快程序的响应速度. 单线程是按顺序执行的,比如用单线程执行如下操作: 6秒读取文件19秒处理文件15秒读取文件28秒处理文件2 总共用时 28 ...

  • Python基础面试题及答案!10道题

    学完Python找工作面试时,面试官肯定会问到很多专业性的问题,比如:Python有哪些特点.什么是flask等.对此,为让大家面试更加顺利,找到心仪的工作,小编特准备了一篇有关Python常见面试题 ...

  • 轻松实现Python中的多进程与多线程

    快动动手指! 今天我们来聊聊Python里面的多进程与多线程编程模式. 01 多线程工作 在开始讲今天的正文之前,先给大家介绍一个概念「多线程工作」,这个概念可能有的人听过,也可能有的人平常工作中就是 ...

  • Python和Matlab有什么区别?一分钟看懂!

    俗话说得好:技多不压身!近几年,随着社会的发展,竞争越来越大,为了获得长久发展,很多人都开始转行学技术,这其中有人会选择学Python,当然也有人想要学Matlab,那么Python和Matlab哪个 ...

  • 理解Python多线程:通过易懂的小例子展开

    4天前 1 默认启动主线程 一般的,程序默认执行只在一个线程,这个线程称为主线程,例子演示如下: 导入线程相关的模块 threading: import threading threading的类方法 ...

  • python笔记18-sort和sorted区别

    前言 python的排序有两个方法,一个是list对象的sort方法,另外一个是builtin函数里面sorted,主要区别: sort仅针对于list对象排序,无返回值, 会改变原来队列顺序 sor ...

  • Python中Json和dict区别对比?入门分享!

    最近有人问小编说:Python开发中字典和Json的区别是什么?关于这个问题,小编通过下文为大家介绍一下. 什么是字典? 字典是一种数据结构,而json是一种数据格式就会有一些形式上的限制,比如jso ...

  • Python迭代器与生成器的区别!

    无论你是Python初学者还是爱好者,相信大家都听说过迭代器与生成器,但是很多同学搞不懂Python迭代器与生成器到底是什么?它们之间又有什么样的关系呢?接下来,小编通过这篇文章为大家介绍一下. 什么 ...

  • Python:loc和iloc的区别

    loc和iloc的区别 pandas以类似字典的方式来获取某一列的值,比如df['A'],这会得到df的A列.如果我们对某一行感兴趣呢?这个时候有两种方法,一种是iloc方法,另一种方法是loc方法. ...

  • 第49天:Python 多线程之 threading 模块

    在之前的文章中,我们已经介绍了 Python 通过 _thread 和 threading 模块提供了对多线程的支持,threading 模块兼具了 _thread 模块的现有功能,又扩展了一些新的功 ...