max_workers=8 ئىجرا قىلىدىغان تىزلارنى چەكلەيدۇ. ئەمما چوڭ كىرگۈزۈشتە ئايرىم يوللاش ھالقىسىنىڭ ھەر بىر ئاخىرقى نۇقتا ئۈچۈن Future قۇرۇشىنى توختاتمايدۇ.

Python 3.14 چەكلەنگەن ئالدىن ئوقۇش تاللانمىسىنى قوشىدۇ:

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 تور ۋاقىت چېكى ۋە تازىلاش بىلەن بولغان مەۋجۇت سىنخرون تەكشۈرۈش؛ record_result ئۇ قايتۇرغان كۆزىتىشنى بىر تەرەپ قىلىدۇ. 8 ۋە 24 قىممەتلىرى ئۈلگىلىك باج. ھەقسىز پروكسى تىزىملىكى ئاخىرقى نۇقتىلار ئۈچۈن ئاممىۋى نامزاتلارنى تەمىنلەيدۇ؛ check_proxy توغرا توشۇشنى ئىشلىتىشى ئۈچۈن ھەر ئادرېس بىلەن ئۇلارنىڭ پروتوكولىنى ساقلاڭ.

يوللاش بۇفېرى تولغاندا، map نەتىجە بېرىلگۈچە تەكرارلىنىدىغان ئوبيېكتنى ئىشلىتىشنى توختىتىدۇ. بۇ گېنېراتورلارغىمۇ مۇناسىۋەتلىك.

map يەنىلا كىرگۈزۈش تەرتىپى بويىچە بېرىدۇ: ئاستا باسقۇچتىكى تەكشۈرۈش تاماملانغان كېيىنكى نەتىجىلەرنى تۇتۇپ، كېيىنكى كىرگۈزۈشنى كېچىكتۈرۈشى مۇمكىن. تاماملىنىش تەرتىپى بويىچە بىر تەرەپ قىلىش ئۈچۈن، تاماملانغاندا تولۇقلىنىدىغان ئېنىق چەكلەنگەن futures توپلىمىنى ئىشلىتىڭ.

گۇرۇپپا نەتىجە بېرىشنى داۋاملاشتۇرۇشقا توغرا كەلسە، كۈتۈلگەن تور ئاقساقلىقلىرىنى تەكشۈرۈش ئىچىدە بىر تەرەپ قىلىڭ. بىر تەرەپ قىلىنمىغان ئالاھىدە ھالەت شۇ تۈر ئېلىنغاندا كۆتۈرۈلىدۇ. ThreadPoolExecutor دىكى chunksize بۇ يوللاش باجىنى تەمىنلىمەيدۇ، ئالاھىدە Python نەشرىلىرىدە buffersize يوق.

مۇناسىۋەتلىك ماقالىلەر