在 Python 中,可以使用multiprocessing
模块和threading
模块来实现并发和并行。
multiprocessing
模块提供了一种使用 Python 实现多进程编程的方法。通过使用Pool
类,可以创建一个进程池,并将任务分配给池中的多个进程来执行。
import multiprocessing as mp
def worker(num):
"""线程执行的任务"""
print('Worker %d started' % num)
if __name__ == '__main__':
# 创建进程池,包含 4 个进程
pool = mp.Pool(4)
# 将任务放入队列中,由进程池中的进程来执行
for i in range(4):
pool.apply_async(worker, args=(i,))
# 关闭进程池
pool.close()
pool.join()
threading
模块提供了一种使用 Python 实现多线程编程的方法。通过使用Thread
类,可以创建一个线程,并将任务分配给线程来执行。
import threading
def worker():
"""线程执行的任务"""
print('Worker started')
if __name__ == '__main__':
# 创建线程
thread1 = threading.Thread(target=worker)
thread2 = threading.Thread(target=worker)
# 启动线程
thread1.start()
thread2.start()
# 等待线程结束
thread1.join()
thread2.join()
在使用多进程和多线程技术时,需要注意进程间和线程间的同步问题,以避免数据竞争和死锁等问题。同时,由于多进程和多线程编程会增加程序的复杂性和维护难度,因此在使用前需要仔细考虑程序的需求和设计。