老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

Python的多进程和多线程是什么?老男孩Python

老男孩IT教育

行业新闻

2021年6月10日 18:18

暂无摘要

       哈喽,学习Python的小伙伴们是否听过进程和线程呢?其实不止Python,学技术的都会涉及到进程和线程,后期小伙伴们可能还会接触各种线程锁,那本期先为大家讲解一下进程和线程的区别,或者各是什么东西,让大家有一个基础的了解,那么请看下文:

Python

       ·进程与线程:

       进程:系统中运行中的一个程序,每个进程都是独立的,都在运行各自的内存,也就是自己干自己的互不干涉。

       线程:进程的基本执行单元,进程的全部任务都在线程中执行,启动程序会默认开启一条线程,这条线成一般被称为主线程。

       从空间层面讲,同一进程的线程共享一个进程的空间,但进程之间则是独立的空间,从共享层面讲,同一进程内的线程共享一个进程的资源,如内存、cpu等。

       一个进程崩溃后,不会影响到其他进程,但一个线程崩溃后,会导致整个进程都崩溃,所以多进程要比多线程牛叉,况且,进程在切换时,资源消耗较大,效率高。

       ·多进程、多线程:

       多线程|优点:提高程序的效率、提高资源的利用率(CPU、内存)、执行完线程中的任务后,线程会自动销毁,不需要人为去除。

       多线程|缺点:开启线程需要一定的内存空间,如果需要开启大量的线程,不用想,肯定也会占用大量的内存空间,从而降低性能,线程数量越多,CPU的占用率就会越高,涉及到的程序就会更加复杂,比如通信、数据共享等等。

       多进程|优点:可以同时执行多个任务,也就是一起干活,一起干活的话,效率是不是就高了?它的空间也是独立的,上方已经提到了,它创建起来也比较方便。

       多进程|缺点:创建进程和摧毁需要较大的计算机资源,如果我们需要频繁创建和摧毁较多进程的情况下,会导致资源消耗过多,因此,多进程不适合完成任务。

       那么回到Python身上,Python的线程如何使用呢?当我们的解释器执行代码时,会产生GIL锁,在Python中,执行线程前,必须先获得GIL锁,之后每执行一段代码,解释器就会自动释放GIL锁,从而执行别的线程,需要注意的是,线程在Python中只能交替执行,即使100个线程跑在100核CPU上,也只能用到1个核。

       虽然Python不能多线程实现多核任务,但可以通过多进程实现多核。

       想要学习更多Python知识吗?欢迎来到老男孩教育,如果你对我们不太了解,在这里推荐大家来免费试听课,找到一个适合自己又能真学到东西的机构是至关重要的,七位一体服务,全方面为你提供保障~

       推荐阅读:

       Python如何学习?老男孩Python课程有哪些?

       Python具体能做些什么?老男孩Python课程

       Python模块的引入和调用?老男孩Python课程

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。