Python多线程是什么?
多线程用于同时执行多个不同的程序或任务,可以做到并行处理和提高程序执行性能。Python 提供了两个多线程模块,即 _thread 和 threading。
当执行任何应用程序时,CPU 会为应用程序创建一个进程(process)。该进程由下面元素组成:
如果该应用程序只有一个调用堆栈及一个计数器,那么该应用程序称为单线程的应用程序。
在多线程的应用程序中,每一个线程的执行时间等于应用程序所花的 CPU 时间除以线程的数目。因为线程彼此之间会分享数据,所以在更新数据之前,必须先将程序代码锁定,如此所有的线程才能同步。
Python 有两个线程接口:_thread 模块与 threading 模块:
除了_thread 模块与 threading 模块之外,Python 还有一个 queue(队列) 模块。通过 queue 模块内的 queue 类,可以实现在多个线程中安全地移动 Python 对象。
声明:《Python系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
1. 单线程应用程序
要想了解多线程,就要首先知道进程的组成结构以及单线程应用程序。当执行任何应用程序时,CPU 会为应用程序创建一个进程(process)。该进程由下面元素组成:
- 给应用程序保留的内存空间。
- 一个应用程序计数器。
- 一个应用程序打开的文件列表。
- 一个存储应用程序内变量的调用堆栈。
如果该应用程序只有一个调用堆栈及一个计数器,那么该应用程序称为单线程的应用程序。
2. 多线程应用程序
多线程的应用程序会创建一个函数,来执行需要重复执行多次的程序代码,然后创建一个线程执行该函数。一个线程(thread)是一个应用程序单元,用于在后台并行执行多个耗时的动作。在多线程的应用程序中,每一个线程的执行时间等于应用程序所花的 CPU 时间除以线程的数目。因为线程彼此之间会分享数据,所以在更新数据之前,必须先将程序代码锁定,如此所有的线程才能同步。
Python 有两个线程接口:_thread 模块与 threading 模块:
- _thread 模块提供低级的接口,用于支持小型的进程线程。
- threading 模块则是以 thread 模块为基础,提供高级的接口。
除了_thread 模块与 threading 模块之外,Python 还有一个 queue(队列) 模块。通过 queue 模块内的 queue 类,可以实现在多个线程中安全地移动 Python 对象。
声明:《Python系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。