通常,计算机程序中的指令以顺序方式执行,一个任务的执行必须在下一个任务开始之前完成。然而,在某些情况下,我们可能希望某些任务同时执行或在重叠的时间段内执行,多线程是我们可以快速有效地实现此目的的一种方法。在计算机编程术语中,同时处理多个任务被称为并发,因此,多线程只是程序实现并发的一种方式。
在我们深入研究线程和多线程的工作原理之前,您首先需要了解两个术语,即进程和线程。
在Python中,进程是指正在执行的程序的实例。操作系统可以同时处理多个进程,同时确保数据完整性,以便一个进程无法访问另一进程的数据。每个进程都分配有自己的内存空间,用于存储和操作其数据。
线程,也称为子进程,是指处理器可以调度运行的最小指令集。与进程相比,线程是轻量级的,单个进程可以包含多个线程。每个进程总是从一个线程开始,该线程称为主线程, 然后可以添加新线程来处理子任务。在单个进程中运行的所有线程共享相同的资源/内存,这使得它们之间的通信更加容易和直接。
当单个进程中出现的两个或多个线程在重叠的时间段内执行时,就会发生多线程。然而,应该清楚的一件事是,在进程中的任何给定时间实际上只能执行单个线程。因此,实际上,多线程并不完全是同时的,而是通过线程之间快速切换来实现并发,切换速度之快,以至于人们可能会认为线程是并行执行的。
多线程的主要目的是提高程序效率和性能,因为它使得同时执行多个任务成为可能。
线程模块
在Python中,多线程是使用threading 标准库中提供的模块来实现的。该模块提供了管理和使用线程所需的工具。
Thread 模块中的类用于创建、运行和一般管理线程。其语法如下: