কম্পিউটার

পাইথনে বাধা বস্তু


ব্যারিয়ার পাইথন সিঙ্ক্রোনাইজেশন টেকনিকের একটি প্রদান করে যার সাহায্যে একক বা একাধিক থ্রেড ক্রিয়াকলাপগুলির একটি সেটের একটি বিন্দু পর্যন্ত অপেক্ষা করে এবং একসাথে অগ্রগতি করে৷

একটি বাধা বস্তুকে সংজ্ঞায়িত করতে, "থ্রেডিং। বাধা" ব্যবহার করা হয়।

থ্রেডিং। বাধা(পার্টি, অ্যাকশন =কোনোটিই নয়, টাইমআউট =কোনোটিই নয়)

কোথায়,

  • দলগুলি =থ্রেডের সংখ্যা

  • অ্যাকশন =থ্রেডগুলির একটি দ্বারা ডাকা হয় যখন তারা মুক্তি পায়।

  • timeout =ডিফল্ট টাইমআউট মান। অপেক্ষা() এর জন্য কোন সময়সীমার মান নির্দিষ্ট না করা থাকলে এই টাইমআউট মান ব্যবহার করা হয়।

নীচে উল্লিখিত পদ্ধতিগুলি ব্যারিয়ার ক্লাস দ্বারা ব্যবহৃত হয়।

Sr. No পদ্ধতি ও বর্ণনা
1 দলগুলি
সাধারণ বাধা বিন্দুতে পৌঁছানোর জন্য প্রয়োজনীয় থ্রেডের একটি সংখ্যা।
2 n_waiting
সাধারণ বাধা বিন্দুতে অপেক্ষারত থ্রেডের সংখ্যা
3 ভাঙা
একটি বুলিয়ান মান, সত্য- যদি বাধা ভাঙা অবস্থায় থাকে অন্যথায় মিথ্যা।
4 অপেক্ষা করুন( সময় শেষ =কোনটিই নয়)
অবহিত না হওয়া পর্যন্ত অপেক্ষা করুন বা সময় শেষ না হওয়া পর্যন্ত। এই পদ্ধতিটি কল করার সময় যদি কলিং থ্রেড লকটি অর্জন না করে, একটি রানটাইম ত্রুটি উত্থাপিত হয়।
এই পদ্ধতিটি অন্তর্নিহিত লকটি প্রকাশ করে এবং তারপর অবরোধ করে যতক্ষণ না এটি একটি notify() বা notify_all() মেথড কল দ্বারা জাগ্রত হয় অন্য থ্রেডে একই কন্ডিশন ভেরিয়েবলের জন্য, অথবা ঐচ্ছিক সময় শেষ না হওয়া পর্যন্ত। একবার জাগ্রত বা সময় শেষ হয়ে গেলে, এটি লকটি পুনরায় অর্জন করে এবং ফিরে আসে।
যখন টাইম আউট যুক্তি উপস্থিত এবং কোনটিই নয় , এটি একটি ফ্লোটিং পয়েন্ট নম্বর হওয়া উচিত যা সেকেন্ডে (বা এর ভগ্নাংশ) অপারেশনের জন্য একটি সময়সীমা নির্দিষ্ট করে।
5 রিসেট()
ডিফল্ট অবস্থায় বাধা সেট করুন বা ফেরত দিন। খালি অবস্থা। এবং এটির উপর অপেক্ষা করা থ্রেডগুলি BrokenBarrierError পাবে।
6 Abort()
এটি একটি ভাঙা অবস্থায় বাধা দেবে। এর ফলে সমস্ত সক্রিয় থ্রেড বা ভবিষ্যত কল অপেক্ষা করতে হবে () ব্রোকেনব্যারিয়ার ত্রুটির সাথে ব্যর্থ হবে।

barrierThread.py

থ্রেডিং ইম্পোর্ট ব্যারিয়ার থেকে র্যান্ডম ইম্পোর্ট থেকে রেন্ডরেঞ্জ, থ্রেড ফ্রম টাইম ইম্পোর্ট ctime, স্লিপনাম =4# 4 থ্রেডগুলি মুক্তি পেতে এই বাধা অতিক্রম করতে হবে। USA', 'China']def player():name =names.pop() sleep(randrange(2, 5)) print('%s বাধার কাছে পৌঁছেছে:%s \n' % (নাম, ctime() )) b.wait()threads =[]print("Race starts now…")এর জন্য i range(num):threads.append(Thread(target=player)) থ্রেড[-1].start()"" "নীচের লুপ মূল স্ক্রিপ্টের সাথে এগিয়ে যাওয়ার আগে থ্রেডগুলি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করতে সক্ষম করে।"

ফলাফল

দৌড় এখন শুরু হয়...ভারত বাধা এ পৌঁছেছে:শুক্র জানুয়ারী 18 14:07:44 2019 চীন বাধা এ পৌঁছেছে:শুক্র জানুয়ারী 18 14:07:44 2019 জাপান বাধা এ পৌঁছেছে:শুক্র জানুয়ারী 18 14:07:46 2019 USA এতে বাধা পৌঁছেছে:শুক্র জানুয়ারী 18 14:07:46 2019সমস্ত বাধা বিন্দুতে পৌঁছেছে!

  1. পাইথনে ফাইল অবজেক্ট?

  2. পাইথন অভিধান দেখার বস্তু কি?

  3. পাইথন ফাংশন বস্তু?

  4. Python এবং Boto 3 দিয়ে S3 অবজেক্ট ডাউনলোড করুন