Python多线程是一种在同一进程中同时执行多个不同任务的技术。以下是几个Python多线程使用的案例:
- 经典的“打印Hello World”例子:
import threading
def print_hello():
for i in range(5):
print(f'Hello {i}')
threads = []
for _ in range(5):
t = threading.Thread(target=print_hello)
threads.append(t)
t.start()
for t in threads:
t.join()
在这个例子中,我们创建了五个线程,每个线程都调用print_hello函数打印出"Hello"和一个数字。join()方法用于等待所有线程完成。
- Python多线程下载网页内容的例子:
import requests
from concurrent.futures import ThreadPoolExecutor
def download(url):
response = requests.get(url)
return url, response.text
urls = ['https://www.example.com', 'https://www.example.org', 'https://www.example.net']
with ThreadPoolExecutor(max_workers=3) as executor:
future_to_url = {
executor.submit(download, url): url for url in urls}
for future in concurrent.futures.as_completed(future_to_url):
url = future_to_url[future]
try:
data = future.result()
except Exception as exc:
print('%r generated an exception: %s' % (url, exc))
else:
print('%r page is %d bytes' % (url, len(data)))
在这个例子中,我们使用了concurrent.futures模块的ThreadPoolExecutor来创建一个线程池,然后提交三个任务下载指定的网页。当所有任务完成后,我们将打印出每个网页的内容大小。
以上就是Python多线程的一些基本使用案例,实际上还有很多其他的用例,例如使用Queue和Lock来进行线程间的通信和同步等等。