Python中的多线程和多进程有什么区别?

Python下多线程是鸡肋,推荐使用多进程!

一、进程与线程

进程是操作系统进行资源分配的最小单元,资源包括CPU、内存、磁盘等IO设备等等,

而线程是CPU调度的基本单位。举个简单的例子来帮助理解:我们电脑上同时运行的浏

览器和视频播放器是两个不同的进程,进程可能包含多个子任务,这些子任务就是线程

,比如视频播放器在播放视频时要同时显示图像、播放声音、显示字幕,这就是三个线

程。

二、多线程

操作系统通过给不同的线程分配时间片(CPU运行时长)来调度线程,当CPU执行完一

个线程的时间片后就会快速切换到下一个线程,时间片很短而且切换切速度很快以至于

用户根本察觉不到。早期的计算机是单核单线程的,多个线程根据分配的时间片轮流被

CPU执行,如今绝大多数计算机的CPU都是多核的,多个线程在操作系统的调度下能够

被多个CPU并发执行,程序的执行速度和CPU的利用效率大大提升。绝大多数主流的编

程语言都能很好地支持多线程,然而python由于GIL锁无法实现真正的多线程。

 

你可能感兴趣的:(Python中的多线程和多进程有什么区别?)