Python编写的多线程案例
发布时间:2023-12-04 10:12:11
多线程是指同时运行多个线程,每个线程执行不同的任务。Python中的多线程可以通过threading模块来实现。
下面是一个简单的多线程案例,打印出10个数字:
import threading
# 线程执行的任务
def print_number(start, end):
for i in range(start, end):
print(i)
# 创建线程
thread1 = threading.Thread(target=print_number, args=(0, 5)) # 打印0到5的数字
thread2 = threading.Thread(target=print_number, args=(5, 10)) # 打印5到10的数字
# 启动线程
thread1.start()
thread2.start()
# 等待线程执行完毕
thread1.join()
thread2.join()
print("线程执行完毕")
在上面的例子中,我们创建了两个线程,分别打印0到5和5到10的数字。然后启动线程,通过join方法保证线程执行完成后再继续执行主线程。
多线程的优点是可以提高程序的执行效率,因为不同线程可以同时执行不同的任务。但同时也会增加程序的复杂性,因为多线程之间需要共享资源,需要注意线程安全问题。
下面是一个使用多线程处理文件的案例:
import threading
# 线程执行的任务
def process_file(file_name):
with open(file_name, 'r') as f:
for line in f:
# 处理每一行数据
print(line.strip())
# 文件列表
file_list = ['file1.txt', 'file2.txt', 'file3.txt']
# 创建线程
threads = []
for file_name in file_list:
thread = threading.Thread(target=process_file, args=(file_name,))
threads.append(thread)
# 启动线程
for thread in threads:
thread.start()
# 等待线程执行完毕
for thread in threads:
thread.join()
print("线程执行完毕")
在上面的例子中,我们创建了多个线程来处理文件,每个线程处理一个文件。通过创建线程列表,然后启动线程和等待线程执行完成,可以同时处理多个文件,提高效率。
需要注意的是,当多个线程访问同一个共享资源时,需要考虑线程安全问题。可以使用线程锁来保证同一时间只有一个线程访问共享资源。
