কম্পিউটার টিউটোরিয়াল

পাইথনে থ্রেড ব্যবহার করে কনকারেন্সি বাস্তবায়ন করা

ভূমিকা

পাইথনে কনকারেন্ট প্রোগ্রামিং-এর জন্য থ্রেড, সাবপ্রসেস, জেনারেটর ইত্যাদি অপ্রোচ আছে। কনকারেন্সি হল একক প্রোগ্রামের মধ্যে একাধিক স্বতন্ত্র এক্সিকিউশন পাথ খোলা (I/O স্ট্রিম, SQL কুয়েরি ইত্যাদি) যাতে একসাথে ও স্বতন্ত্রভাবে চলতে লাগে।

কীভাবে করবেন

সিঙ্গেল থ্রেড (সিকোয়েনশিয়াল)


import requests
tutorialpoints_url = [
    'https://www.tutorialspoint.com/python/index.htm',
    'https://www.tutorialspoint.com/cplusplus/index.htm',
    'https://www.tutorialspoint.com/java/index.htm',
    'https://www.tutorialspoint.com/html/index.htm',
    'https://www.tutorialspoint.com/cprogramming/index.htm'
]

def visit_site(site_url):
    response = requests.get(site_url)
    print(f' *** {site_url} returned {response.status_code} after {response.elapsed} seconds')

if __name__ == '__main__':
    for site_url in tutorialpoints_url:
        visit_site(site_url)
    print(" *** end of the program ***")

আউটপুট দেখাবে প্রতিটি URL সিকোয়েনশিয়ালি প্রসেস হচ্ছে। ১০০টা URL হলে খুব সময় লাগবে।

মাল্টিথ্রেডেড (প্যারালাল)


from threading import Thread

def visit_site(site_url):
    response = requests.get(site_url)
    print(f' *** {site_url} returned {response.status_code} after {response.elapsed} seconds')

if __name__ == '__main__':
    for site_url in tutorialpoints_url:
        t = Thread(target=visit_site, args=(site_url,))
        t.start()

এখন সব রিকোয়েস্ট প্যারালালি যাচ্ছে, প্রোগ্রাম অপেক্ষা করছে না।

থ্রেড স্ট্যাটাস চেক


if t.is_alive():
    print(f' *** {t} is Still executing')
else:
    print(f' *** {t} is Completed')

আলোচনা

  • threading লাইব্রেরি যেকোনো পাইথন কলেবলকে তার নিজস্ব থ্রেডে এক্সিকিউট করতে পারে।
  • start() মেথড আর্গুমেন্টসহ ফাংশন আহ্বান করে।
  • থ্রেড একবার শুরু হলে অপারেটিং সিস্টেম tarafından ফুলি ম্যানেজড থাকে।
  1. পাইথনে ইমিউটেবল ডেটা স্ট্রাকচার বাস্তবায়ন কীভাবে করবেন?

  2. Bokeh (Python)-এ ইমেজ নিয়ে কাজ করার পদ্ধতি

  3. পাইথনে মাইক্রোসফ্ট ওয়ার্ড ডকুমেন্ট পড়ার টিউটোরিয়াল

  4. পাইথনে API রেজাল্ট ভিজ্যুয়ালাইজ করার টিউটোরিয়াল