max_workers=8 jillimita l-ħjut li jkunu qed jeżegwixxu. Madankollu ma jwaqqafx linja separata ta' sottomissjoni milli toħloq Future għal kull punt finali f'input enormi.

Python 3.14 iżid għażla limitata ta' qari bil-quddiem:

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)

check_proxy hija l-verifika sinkronika eżistenti, b'termini tan-netwerk u tindif; record_result jittratta l-osservazzjoni li tirritorna. Il-valuri 8 u 24 huma baġits eżempju. Il-lista ta' prokys b'xejn tipprovdi kandidati pubbliċi għall-punti finali; żomm il-protokoll tagħhom ma' kull indirizz sabiex check_proxy jkun jista' juża t-trasport korrett.

Meta l-buffer tas-sottomissjoni jimtela, map jieqaf mill-konsum tal-iterabbli sakemm jiġu pprovduti r-riżultati. Dan japplika wkoll għall-ġeneraturi.

map għadha tipprovdi fl-ordni tal-input: verifika bikrija bil-mod tista' żżomm riżultati aktar tard li jkunu diġà lesti u tittardja aktar input. Għall-ipproċessar fl-ordni tal-kompletament, uża sett ta' futures limitat b'mod espliċitu li jerġa' jimtela hekk kif jispiċċaw.

Ittratta l-fallimenti tan-netwerk mistennija ġewwa l-verifika jekk il-lott għandu jkompli jipprovdi riżultati. Eċċezzjoni mhux trattata tinġibed meta dak l-element jinġab. chunksize f'ThreadPoolExecutor ma jipprovdix dan il-baġit ta' sottomissjoni, u verżjonijiet aktar bikrija ta' Python m'għandhomx buffersize.

Artikli relatati