Python多线程应用实例解析

原创 谁借莪1个温暖的怀抱¢ 2025-01-25 13:54 40阅读 0赞

在Python编程中,多线程是一个非常重要的概念。它允许程序同时执行多个任务,从而提高整体性能。

以下是一些关于Python多线程应用实例的解析:

  1. 简单的打印线程

    1. import threading
    2. def print_thread(text):
    3. for i in range(5): # 每次打印5个字符
    4. print(text[i % len(text)]], end='', flush=True)
    5. print("\nThread completed.")
    6. if __name__ == "__main__":
    7. thread = threading.Thread(target=print_thread, args=("Hello Multithreaded!",)))
    8. thread.start()
    9. thread.join() # 确保主线程等待子线程完成

    这段代码创建了一个打印线程,它会循环打印字符串。

  2. 计算任务的多线程

    1. import threading
    2. def calculator(num):
    3. return num * num
    4. threads = []
    5. for i in range(5): # 创建5个线程
    6. thread = threading.Thread(target=calculator, args=(i,)))
    7. thread.start()
    8. threads.append(thread) # 将线程添加到列表中,以便后续操作
    9. for thread in threads:
    10. thread.join() # 确保主线程等待所有子线程完成
    11. print("All calculator threads completed!")

    这段代码创建了5个计算任务的线程。每个线程都会执行一个特定的计算(i * i)。

  3. 文件读写多线程

    1. import threading
    2. import time
    3. def file_reader(file_name):
    4. with open(file_name, 'r') as f:
    5. for line in f.readlines():
    6. print(line.strip()) # 去除行首尾的空白字符
    7. def file_writer(file_name, content="")):
    8. with open(file_name, 'w') as f:
    9. f.write(content)
    10. def worker(file_name):
    11. start_time = time.time()
    12. try:
    13. file_writer(file_name, "Task completed!"))
    14. print(f"Worker {threading.current_thread().name}} completed in {time.time() - start_time} seconds")
    15. except Exception as e:
    16. print(f"Error occurred: {str(e)})}")
    17. finally:
    18. print("\nWorker thread finished.")
    19. threads = []
    20. file_names = ["file1.txt", "file2.txt", "file3.txt"] # 创建多个文件名
    21. for i, file_name in enumerate(file_names):
    22. thread = threading.Thread(target=worker, args=(file_name,))))
    23. thread.start()
    24. threads.append(thread) # 将线程添加到列表中,以便后续操作
    25. print("\nAll worker threads started!")
    26. while len(threads) > 0: # 确保主线程等待所有子线程完成
    27. for thread in threads:
    28. if not thread.is_alive(): # 检查线程是否仍存活
    29. print(f"\nThread {threading.current_thread().name}} finished.")
    30. thread.join() # 确保主线程等待该线程结束
    31. print("\nAll worker threads completed!")

    上述代码创建了多个文件读写任务的多线程。每个文件都会被一个单独的线程写入特定的内容。

总结,Python的多线程编程可以用来提高程序执行效率,尤其适用于那些可以并行处理的任务。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,40人围观)

还没有评论,来说两句吧...

相关阅读