线程是 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