max_workers=8 a chuireas crìoch air na snàithlean gnìomhach. Chan eil e a cur casg air lùb tagraidh air leth bho bhith a cruthachadh Future airson gach ceann-uidhe ann an inntrig mhòr.

Cuiridh Python 3.14 roghainn ro-leughaidh cuibhrichte ris:

from concurrent.futures import ThreadPoolExecutor

with ThreadPoolExecutor(max_workers=8) as executor:
    for result in executor.map(check_proxy, endpoints, buffersize=24):
        record_result(result)

Is e check_proxy an sgrùdadh sioncronach a th ann mar-thà, le crìochan lìonra agus glanadh; bidh record_result a làimhseachadh an amharc a thèid a thilleadh. Is buidseatan eisimpleir a th anns na luachan 8 agus 24. Bheir an liosta proxy an-asgaidh tagraichean poblach airson cinn-uidhe; cùm am protocol còmhla ri gach seòladh gus an cleachd check_proxy an giùlan ceart.

Nuair a lìonas am maothran tagraidh, cuiridh map stad air caitheamh an iterable gus an tèid toraidhean a lìbhrigeadh. Tha seo a buntainn ri gineadairean cuideachd.

Bidh map fhathast a lìbhrigeadh ann an òrdugh inntrig: faodaidh sgrùdadh tràth mall toraidhean nas fhaide air adhart a tha deiseil a chumail air ais agus barrachd inntrig a chur dàil. Airson giollachd ann an òrdugh crìochnachaidh, cleachd seata futures le crìoch shoilleir a thèid a lìonadh a-rithist mar a chrìochnaicheas iad.

Làimhsich fàilligidhean lìonra ris a bheil dùil taobh a-staigh an sgrùdaidh ma bu chòir don bhuidheann leantainn air a lìbhrigeadh thoraidhean. Togaidh eisgeachd gun làimhseachadh nuair a gheibhear an nì sin. Chan eil chunksize ThreadPoolExecutor a toirt seachad a bhuidseit tagraidh seo, agus chan eil buffersize aig dreachan nas sine de Python.

Artaigilean co-cheangailte