线程是 Python 中实现并发的一个基本工具。使用线程,你可以同时执行多个任务,从而提高程序的执行效率。

线程基础

创建线程

在 Python 中,你可以使用 threading 模块来创建线程。以下是一个简单的例子:

import threading

def print_numbers():
    for i in range(5):
        print(i)

t = threading.Thread(target=print_numbers)
t.start()
t.join()

在上面的代码中,我们定义了一个名为 print_numbers 的函数,它将打印数字 0 到 4。然后,我们创建了一个 Thread 对象,指定了 target 参数为 print_numbers 函数。最后,我们调用 start() 方法来启动线程,并使用 join() 方法等待线程完成。

线程安全

由于线程共享内存,因此在使用线程时需要特别注意线程安全问题。Python 提供了多种机制来确保线程安全,例如锁(Lock)、信号量(Semaphore)等。

例子:多线程下载

以下是一个使用多线程进行下载的例子:

import threading
import requests

def download(url):
    response = requests.get(url)
    with open(url.split('/')[-1], 'wb') as f:
        f.write(response.content)

urls = [
    'https://example.com/image1.jpg',
    'https://example.com/image2.jpg',
    'https://example.com/image3.jpg'
]

threads = []
for url in urls:
    t = threading.Thread(target=download, args=(url,))
    t.start()
    threads.append(t)

for t in threads:
    t.join()

在这个例子中,我们定义了一个名为 download 的函数,它将下载一个图片并保存到本地。然后,我们创建了一个线程列表 threads,并为每个 URL 创建了一个线程。最后,我们启动所有线程并等待它们完成。

扩展阅读

更多关于 Python 线程编程的信息,请参阅以下链接:

图片

Python Thread