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 নাই।

সম্পৰ্কিত প্ৰবন্ধ