说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
threading.current_thread() 是 Python threading 模块中的一个函数,用于获取当前正在执行的线程对象。这个函数在多线程编程中非常有用,可以帮助我们识别当前运行的线程。它返回当前对应调用者的控制线程的 Thread 对象。如果调用者的控制线程不是利用 threading 创建,会返回一个功能受限的虚拟线程对象。函数 currentThread 是此函数的已弃用别名。
threading.current_thread() 是 Python threading 模块中的一个函数,用于获取当前正在执行的线程对象。这个函数在多线程编程中非常有用,可以帮助我们识别当前运行的线程。
使用场景:
以下是一个简单的使用示例代码:
import threading
def worker():
print(f"Current thread: {threading.current_thread().name}")
# 创建并启动两个线程
thread1 = threading.Thread(target=worker, name='Thread-1')
thread2 = threading.Thread(target=worker, name='Thread-2')
thread1.start()
thread2.start()
thread1.join()
thread2.join()
再如:
import threading
import time
def worker():
current_thread = threading.current_thread()
print(f"当前线程: {current_thread.name}")
time.sleep(2)
threads = []
for i in range(3):
t = threading.Thread(target=worker)
t.start()
threads.append(t)
for t in threads:
t.join()
假设我们有一个多线程下载任务的程序,不同的线程负责下载不同的文件。我们可以使用 threading.current_thread() 来获取当前线程,并根据线程的名称或其他标识来决定下载的文件路径和处理方式。
import threading
import requests
def download_file(url, save_path):
current_thread = threading.current_thread()
print(f"线程 {current_thread.name} 开始下载: {url}")
response = requests.get(url)
with open(save_path, 'wb') as file:
file.write(response.content)
print(f"线程 {current_thread.name} 下载完成: {url}")
threads = []
urls = [
"https://example.com/file1.txt",
"https://example.com/file2.txt",
"https://example.com/file3.txt"
]
for i, url in enumerate(urls):
thread_name = f"下载线程 {i}"
t = threading.Thread(target=download_file, args=(url, f"file_{i}.txt"), name=thread_name)
t.start()
threads.append(t)
for t in threads:
t.join()
更新时间:June 30, 2024, 3:20 p.m. 标签:python threading 多线程