我应该如何在Python中实现并发?



我有一个程序,其中基于用户输入的线程子示例类的一些实例被创建和启动。除此之外,Example类还会根据用户输入启动多个线程。这段代码的全部意义在于发送请求。

到目前为止,由于创建了大量的线程,用户可能会遇到计算机资源限制。避免这种情况的可能解决方案是什么?我应该使用线程+队列,多处理,异步或其他什么?

Thanks in advance

import threading
import time
import requests

class Example(threading.Thread):
def __init__(self, number_of_request):
super().__init__()
self.number_of_requests = number_of_request

def run(self):
for i in range(0, self.number_of_requests):
threading.Thread(target=self.function()).start()

def function(self):
requests.post("some url")
time.sleep(5)

if __name__ == '__main__':
number_of_entries = int(input("Enter number of entries:"))
number_of_requests = int(input("Enter number of requests"))
for i in range(0, number_of_entries):
Example(number_of_requests).start()

解决这个问题的方法有很多

1 - asyncio + aiohttp

2 - threading

3 - multiprocessing

4 - asyncio + aiosonic

这完全取决于你的计算机和网络有多少资源

希望这对你有帮助:)

最新更新