python控制并发数

发布日期:2023-10-16 17:44:41

ython中可以通过多线程、多进程、协程等方式来控制并发数。
1. 多线程
Python中的`threading`模块可以用来创建多线程,通过控制线程数量来控制并发数。例如,可以创建一个线程池,限制线程数量为5:

python
import threading
import time
def worker():
print(threading.current_thread().name, \'start\')
time.sleep(1)
print(threading.current_thread().name, \'end\')
if __name__ == \'__main__\':
pool = [] for i in range(5):
t = threading.Thread(target=worker)
pool.append(t)
for t in pool:
t.start()
for t in pool:
t.join()

2. 多进程
Python中的`multiprocessing`模块可以用来创建多进程,通过控制进程数量来控制并发数。例如,可以创建一个进程池,限制进程数量为5:

python
import multiprocessing
import time
def worker():
print(multiprocessing.current_process().name, \'start\')
time.sleep(1)
print(multiprocessing.current_process().name, \'end\')
if __name__ == \'__main__\':
pool = multiprocessing.Pool(processes=5)
for i in range(5):
pool.apply_async(worker)
pool.close()
pool.join()

3. 协程
Python中的`asyncio`模块可以用来创建协程,通过控制协程数量来控制并发数。例如,可以创建一个协程池,限制协程数量为5:

python
import asyncio
import time
async def worker():
print(\'start\')
await asyncio.sleep(1)
print(\'end\')
if __name__ == \'__main__\':
loop = asyncio.get_event_loop()
tasks = [worker() for i in range(5)] loop.run_until_complete(asyncio.wait(tasks))
loop.close()

以上三种方式都可以用来控制并发数,具体使用哪种方式取决于具体场景和需求。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

近期评论

没有评论可显示。