在CentOS上使用Python进行并发处理,你可以选择多种方法。以下是一些常用的并发处理库和示例:
threading库:import threading
def worker(num):
"""线程任务函数"""
print(f"Worker: {num}")
threads = []
for i in range(5):
t = threading.Thread(target=worker, args=(i,))
threads.append(t)
t.start()
for t in threads:
t.join()
multiprocessing库:import multiprocessing
def worker(num):
"""进程任务函数"""
print(f"Worker: {num}")
processes = []
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
processes.append(p)
p.start()
for p in processes:
p.join()
concurrent.futures库:from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor
def worker(num):
"""任务函数"""
print(f"Worker: {num}")
# 使用线程池
with ThreadPoolExecutor(max_workers=5) as executor:
for i in range(5):
executor.submit(worker, i)
# 使用进程池
with ProcessPoolExecutor(max_workers=5) as executor:
for i in range(5):
executor.submit(worker, i)
asyncio库(适用于I/O密集型任务):import asyncio
async def worker(num):
"""异步任务函数"""
print(f"Worker: {num}")
await asyncio.sleep(1)
async def main():
tasks = [worker(i) for i in range(5)]
await asyncio.gather(*tasks)
asyncio.run(main())
根据你的需求和任务类型,可以选择合适的并发处理方法。对于CPU密集型任务,推荐使用multiprocessing库;对于I/O密集型任务,推荐使用asyncio库。