Python的多进程和多线程是什么?老男孩Python
老男孩IT教育
行业新闻
2021年6月10日 18:18
暂无摘要
哈喽,学习Python的小伙伴们是否听过进程和线程呢?其实不止Python,学技术的都会涉及到进程和线程,后期小伙伴们可能还会接触各种线程锁,那本期先为大家讲解一下进程和线程的区别,或者各是什么东西,让大家有一个基础的了解,那么请看下文:
·进程与线程:
进程:系统中运行中的一个程序,每个进程都是独立的,都在运行各自的内存,也就是自己干自己的互不干涉。
线程:进程的基本执行单元,进程的全部任务都在线程中执行,启动程序会默认开启一条线程,这条线成一般被称为主线程。
从空间层面讲,同一进程的线程共享一个进程的空间,但进程之间则是独立的空间,从共享层面讲,同一进程内的线程共享一个进程的资源,如内存、cpu等。
一个进程崩溃后,不会影响到其他进程,但一个线程崩溃后,会导致整个进程都崩溃,所以多进程要比多线程牛叉,况且,进程在切换时,资源消耗较大,效率高。
·多进程、多线程:
多线程|优点:提高程序的效率、提高资源的利用率(CPU、内存)、执行完线程中的任务后,线程会自动销毁,不需要人为去除。
多线程|缺点:开启线程需要一定的内存空间,如果需要开启大量的线程,不用想,肯定也会占用大量的内存空间,从而降低性能,线程数量越多,CPU的占用率就会越高,涉及到的程序就会更加复杂,比如通信、数据共享等等。
多进程|优点:可以同时执行多个任务,也就是一起干活,一起干活的话,效率是不是就高了?它的空间也是独立的,上方已经提到了,它创建起来也比较方便。
多进程|缺点:创建进程和摧毁需要较大的计算机资源,如果我们需要频繁创建和摧毁较多进程的情况下,会导致资源消耗过多,因此,多进程不适合完成任务。
那么回到Python身上,Python的线程如何使用呢?当我们的解释器执行代码时,会产生GIL锁,在Python中,执行线程前,必须先获得GIL锁,之后每执行一段代码,解释器就会自动释放GIL锁,从而执行别的线程,需要注意的是,线程在Python中只能交替执行,即使100个线程跑在100核CPU上,也只能用到1个核。
虽然Python不能多线程实现多核任务,但可以通过多进程实现多核。
想要学习更多Python知识吗?欢迎来到老男孩教育,如果你对我们不太了解,在这里推荐大家来免费试听课,找到一个适合自己又能真学到东西的机构是至关重要的,七位一体服务,全方面为你提供保障~
推荐阅读:
