Junior — Middle
Kas on võimalik samaaegselt saata 10 päringut, millest igaüks kestab 20 sekundit?
sobes.tech AI
Vastus AI-lt
Jah, Pythonis on võimalik samaaegselt saata 10 päringut, igaüks kestab 20 sekundit, kasutades paralleelset või asünkroonset täitmist. Näiteks, concurrent.futures mooduli ja ThreadPoolExecutor abil saab käivitada mitu päringut eraldi lõimedes:
import concurrent.futures
import time
import requests
def send_request(url):
response = requests.get(url)
return response.status_code
urls = ['http://example.com'] * 10
with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
futures = [executor.submit(send_request, url) for url in urls]
for future in concurrent.futures.as_completed(futures):
print(future.result())
See lähenemine võimaldab peaaegu samaaegselt saata kõik 10 päringut ning kogu aeg on umbes 20 sekundit, mitte 200. Samuti saab kasutada asyncio koos asünkroonsete HTTP teekidega.