Python 2.4 এর সাথে অন্তর্ভুক্ত নতুন থ্রেডিং মডিউল পূর্ববর্তী বিভাগে আলোচিত থ্রেড মডিউলের তুলনায় থ্রেডের জন্য অনেক বেশি শক্তিশালী, উচ্চ-স্তরের সমর্থন প্রদান করে।
থ্রেডিং মডিউল থ্রেড মডিউলের সমস্ত পদ্ধতি প্রকাশ করে এবং কিছু অতিরিক্ত পদ্ধতি প্রদান করে −
- threading.activeCount() − সক্রিয় থ্রেড অবজেক্টের সংখ্যা প্রদান করে।
- threading.currentThread() − কলারের থ্রেড কন্ট্রোলে থ্রেড অবজেক্টের সংখ্যা প্রদান করে।
- threading.enumerate() − বর্তমানে সক্রিয় সমস্ত থ্রেড অবজেক্টের একটি তালিকা প্রদান করে৷
পদ্ধতিগুলি ছাড়াও, থ্রেডিং মডিউলটিতে থ্রেড ক্লাস রয়েছে যা থ্রেডিং প্রয়োগ করে। থ্রেড ক্লাস দ্বারা প্রদত্ত পদ্ধতিগুলি নিম্নরূপ -
- রান() − রান() পদ্ধতি হল একটি থ্রেডের এন্ট্রি পয়েন্ট।
- start() − start() মেথড রান মেথড কল করে একটি থ্রেড শুরু করে।
- যোগ দিন([সময়]) − join() থ্রেড বন্ধ হওয়ার জন্য অপেক্ষা করে।
- isAlive() − isAlive() পদ্ধতিটি একটি থ্রেড এখনও কার্যকর হচ্ছে কিনা তা পরীক্ষা করে।
- getName() − getName() পদ্ধতি একটি থ্রেডের নাম প্রদান করে।
- setName() − setName() পদ্ধতি একটি থ্রেডের নাম সেট করে।
থ্রেডিং মডিউল ব্যবহার করে থ্রেড তৈরি করা
থ্রেডিং মডিউল ব্যবহার করে একটি নতুন থ্রেড বাস্তবায়ন করতে, আপনাকে নিম্নলিখিতগুলি করতে হবে -
- থ্রেড ক্লাসের একটি নতুন সাবক্লাস সংজ্ঞায়িত করুন।
- অতিরিক্ত আর্গুমেন্ট যোগ করতে __init__(self [,args]) পদ্ধতিটি ওভাররাইড করুন।
- তারপর, রান (self [,args]) পদ্ধতিটি ওভাররাইড করুন যাতে থ্রেড শুরু করার সময় কি করা উচিত তা বাস্তবায়ন করুন।
একবার আপনি নতুন থ্রেড সাবক্লাস তৈরি করার পরে, আপনি এটির একটি উদাহরণ তৈরি করতে পারেন এবং তারপর start() ব্যবহার করে একটি নতুন থ্রেড শুরু করতে পারেন, যা পরিবর্তে রান() পদ্ধতিকে কল করে।
উদাহরণ
#!/usr/bin/python import threading import time exitFlag = 0 class myThread (threading.Thread): def __init__(self, threadID, name, counter): threading.Thread.__init__(self) self.threadID = threadID self.name = name self.counter = counter def run(self): print "Starting " + self.name print_time(self.name, 5, self.counter) print "Exiting " + self.name def print_time(threadName, counter, delay): while counter: if exitFlag: threadName.exit() time.sleep(delay) print "%s: %s" % (threadName, time.ctime(time.time())) counter -= 1 # Create new threads thread1 = myThread(1, "Thread-1", 1) thread2 = myThread(2, "Thread-2", 2) # Start new Threads thread1.start() thread2.start() print "Exiting Main Thread"
উপরের কোডটি কার্যকর করা হলে, এটি নিম্নলিখিত ফলাফল তৈরি করে -
Starting Thread-1 Starting Thread-2 Exiting Main Thread Thread-1: Thu Mar 21 09:10:03 2013 Thread-1: Thu Mar 21 09:10:04 2013 Thread-2: Thu Mar 21 09:10:04 2013 Thread-1: Thu Mar 21 09:10:05 2013 Thread-1: Thu Mar 21 09:10:06 2013 Thread-2: Thu Mar 21 09:10:06 2013 Thread-1: Thu Mar 21 09:10:07 2013 Exiting Thread-1 Thread-2: Thu Mar 21 09:10:08 2013 Thread-2: Thu Mar 21 09:10:10 2013 Thread-2: Thu Mar 21 09:10:12 2013 Exiting Thread-2