Python多线程应用实例解析
在Python编程中,多线程是一个非常重要的概念。它允许程序同时执行多个任务,从而提高整体性能。
以下是一些关于Python多线程应用实例的解析:
简单的打印线程:
import threading
def print_thread(text):
for i in range(5): # 每次打印5个字符
print(text[i % len(text)]], end='', flush=True)
print("\nThread completed.")
if __name__ == "__main__":
thread = threading.Thread(target=print_thread, args=("Hello Multithreaded!",)))
thread.start()
thread.join() # 确保主线程等待子线程完成
这段代码创建了一个打印线程,它会循环打印字符串。
计算任务的多线程:
import threading
def calculator(num):
return num * num
threads = []
for i in range(5): # 创建5个线程
thread = threading.Thread(target=calculator, args=(i,)))
thread.start()
threads.append(thread) # 将线程添加到列表中,以便后续操作
for thread in threads:
thread.join() # 确保主线程等待所有子线程完成
print("All calculator threads completed!")
这段代码创建了5个计算任务的线程。每个线程都会执行一个特定的计算(i * i)。
文件读写多线程:
import threading
import time
def file_reader(file_name):
with open(file_name, 'r') as f:
for line in f.readlines():
print(line.strip()) # 去除行首尾的空白字符
def file_writer(file_name, content="")):
with open(file_name, 'w') as f:
f.write(content)
def worker(file_name):
start_time = time.time()
try:
file_writer(file_name, "Task completed!"))
print(f"Worker {threading.current_thread().name}} completed in {time.time() - start_time} seconds")
except Exception as e:
print(f"Error occurred: {str(e)})}")
finally:
print("\nWorker thread finished.")
threads = []
file_names = ["file1.txt", "file2.txt", "file3.txt"] # 创建多个文件名
for i, file_name in enumerate(file_names):
thread = threading.Thread(target=worker, args=(file_name,))))
thread.start()
threads.append(thread) # 将线程添加到列表中,以便后续操作
print("\nAll worker threads started!")
while len(threads) > 0: # 确保主线程等待所有子线程完成
for thread in threads:
if not thread.is_alive(): # 检查线程是否仍存活
print(f"\nThread {threading.current_thread().name}} finished.")
thread.join() # 确保主线程等待该线程结束
print("\nAll worker threads completed!")
上述代码创建了多个文件读写任务的多线程。每个文件都会被一个单独的线程写入特定的内容。
总结,Python的多线程编程可以用来提高程序执行效率,尤其适用于那些可以并行处理的任务。
还没有评论,来说两句吧...