কম্পিউটার

পাইথনে থ্রেড সিঙ্ক্রোনাইজ করা হচ্ছে


পাইথনের সাথে প্রদত্ত থ্রেডিং মডিউলটিতে একটি সহজ-থেকে-ইমপ্লিমেন্ট লকিং মেকানিজম রয়েছে যা আপনাকে থ্রেড সিঙ্ক্রোনাইজ করতে দেয়। লক() পদ্ধতিতে কল করে একটি নতুন লক তৈরি করা হয়, যা নতুন লকটি ফেরত দেয়।

নতুন লক অবজেক্টের অর্জন (ব্লকিং) পদ্ধতিটি থ্রেডগুলিকে সিঙ্ক্রোনাসভাবে চালানোর জন্য বাধ্য করতে ব্যবহৃত হয়। ঐচ্ছিক ব্লকিং প্যারামিটার আপনাকে নিয়ন্ত্রণ করতে সক্ষম করে যে থ্রেডটি লক পাওয়ার জন্য অপেক্ষা করছে কিনা।

যদি ব্লকিং 0 তে সেট করা হয়, থ্রেডটি অবিলম্বে একটি 0 মান সহ ফিরে আসে যদি লকটি অর্জিত না হয় এবং যদি লকটি অধিগ্রহণ করা হয় তবে 1 সহ। ব্লকিং 1 এ সেট করা থাকলে, থ্রেড ব্লক হয়ে যায় এবং লকটি প্রকাশের জন্য অপেক্ষা করে।

নতুন লক অবজেক্টের রিলিজ() পদ্ধতিটি লকটি ছেড়ে দেওয়ার জন্য ব্যবহার করা হয় যখন এটির আর প্রয়োজন হয় না৷

উদাহরণ

#!/usr/bin/pythonimport threadingimport timeclass myThread (থ্রেডিং. থ্রেড):def __init__(self, threadID, name, counter):threading.Thread.__init__(self) self.threadID =threadID self.name =নাম self.counter =counter def run(self):প্রিন্ট "Starting" + self.name # থ্রেড সিঙ্ক্রোনাইজ করতে লক পান threadLock.acquire() print_time(self.name, self.counter, 3) # পরবর্তী থ্রেড থ্রেডলক রিলিজ করতে বিনামূল্যে লক প্রকাশ করুন =থ্রেডিং।লক()থ্রেড =[]# নতুন থ্রেড থ্রেড তৈরি করুন1 =myThread(1, "থ্রেড-1", 1)thread2 =myThread(2, "থ্রেড-2", 2)# নতুন Threadsthread1.start()thread2 শুরু করুন .start()# থ্রেড লিস্টে থ্রেড যোগ করুন. 

উপরের কোডটি কার্যকর করা হলে, এটি নিম্নলিখিত ফলাফল তৈরি করে -

সূচনা থ্রেড-1শুরু হচ্ছে থ্রেড-2থ্রেড-1:বৃহস্পতি মার্চ 21 09:11:28 2013থ্রেড-1:বৃহস্পতি মার্চ 21 09:11:29 2013থ্রেড-1:বৃহস্পতি মার্চ 21 09:11:30-2013Thu মার্চ 21 09:11:32 2013 থ্রেড-2:বৃহস্পতি মার্চ 21 09:11:34 2013 থ্রেড-2:বৃহস্পতি মার্চ 21 09:11:36 2013প্রধান থ্রেড থেকে প্রস্থান করা হচ্ছে

  1. issuperset() পাইথনে

  2. পাইথনে লগ ইন করা হচ্ছে

  3. পাইথন গ্লোবাল ইন্টারপ্রেটার লক (GIL) কি?

  4. থ্রেডগুলিতে পাইথন ব্যতিক্রম কীভাবে পরিচালনা করবেন?