পাইথনে মিটিথ্রেডিং কী এবং এটি কীভাবে অর্জন করা যায়?



পাইথনে মাল্টিটাস্কিং কী তা শিখুন। এটি ক্লাস তৈরি না করে থ্রেড তৈরি করতে, থ্রেড ক্লাসকে প্রসারিত করে এবং প্রসারিত না করে কীভাবে থ্রেড তৈরি করা যায় তা মাল্টিথ্রেডিংয়েরও ব্যাখ্যা করে।

সময় জীবনের সবচেয়ে গুরুত্বপূর্ণ বিষয়। এর গুরুত্বের কারণেই, প্রোগ্রামিংয়ের জগতটি বিভিন্ন কৌশল এবং কৌশল সরবরাহ করে যা আপনাকে সময় ব্যয় হ্রাস করতে সহায়তা করে, যার ফলে কর্মক্ষমতা বাড়ায়। এর মধ্যে একটি পদ্ধতি পাইথনের মাল্টিথ্রেডিং, যা অন্তর্ভুক্ত করা সবচেয়ে গুরুত্বপূর্ণ ধারণাগুলির মধ্যে একটি ।

এই নিবন্ধে আবদ্ধ সমস্ত মেজরগুলির একটি দ্রুত সংক্ষিপ্তসার এখানে দেওয়া হয়েছে:





হ্যাশম্যাপ এবং হ্যাশটেবলের মধ্যে পার্থক্য কী

কি মাল্টিটাস্কিং পাইথনে?
একটি সুতো কী?
পাইথনে মাল্টিথ্রেডিং কী?
পাইথনে মাল্টিথ্রেডিং কখন ব্যবহার করবেন?
পাইথনে মাল্টিথ্রেডিং কীভাবে অর্জন করবেন?
পাইথনে থ্রেড কীভাবে তৈরি করবেন?

পাইথনে মাল্টিথ্রেডিং ব্যবহারের সুবিধা



প্রথমত, পাইথনের মাল্টিথ্রেডিং সম্পর্কে শিখতে শুরু করার আগে আসুন প্রথমে মাল্টিটাস্কিংটি বোঝার চেষ্টা করি।

পাইথনে মাল্টিটাস্কিং কী?

মাল্টিটাস্কিং, সাধারণভাবে, একসাথে একাধিক কার্য সম্পাদন করার ক্ষমতা। প্রযুক্তিগত ভাষায়, মাল্টিটাস্কিং বলতে একই সাথে বিভিন্ন কার্য সম্পাদন করার জন্য অপারেটিং সিস্টেমের দক্ষতা বোঝায়। এই ক্ষেত্রে , আপনি আপনার পিসিতে কিছু ডাউনলোড করার পাশাপাশি গান শোনার পাশাপাশি এবং একই সাথে একটি গেম খেলছেন ইত্যাদি All এই সমস্ত কাজ একই সিএস দ্বারা একটি সিঙ্কে সম্পাদিত হয়। এটি মাল্টিটাস্কিং ছাড়া কিছুই নয় যা আপনাকে কেবল সময় বাঁচাতে সহায়তা করে না বরং উত্পাদনশীলতা বাড়ায়।

কোনও ওএসে দুই ধরণের মাল্টিটাস্কিং রয়েছে:



  • প্রক্রিয়া ভিত্তিক
  • থ্রেড-ভিত্তিক

এই নিবন্ধে, আপনি সম্পর্কে শিখতে হবে থ্রেড-ভিত্তিক মাল্টিটাস্কিং বা মাল্টিথ্রেডিং

একটি সুতো কী?

পাইথন-এডুরেকাতে থ্রেড-মাল্টিথ্রেডিংএকটি থ্রেড মূলত একটি স্বতন্ত্র মৃত্যুদন্ড কার্যকর। একটি একক প্রক্রিয়াতে একাধিক থ্রেড থাকতে পারে। একটি প্রোগ্রামের প্রতিটি থ্রেড একটি নির্দিষ্ট কাজ সম্পাদন করে। উদাহরণ স্বরূপ, আপনি যখন কোনও গেম খেলছেন তখন আপনার পিসিতে ফিফা বলুন, পুরো গেমটি একক প্রক্রিয়া , তবে এটিতে সংগীত বাজানো, ব্যবহারকারীর কাছ থেকে ইনপুট নেওয়া, প্রতিপক্ষকে একযোগে চালানো ইত্যাদির জন্য দায়ী একাধিক থ্রেড থাকে these এগুলি একই প্রোগ্রামে এই বিভিন্ন কাজ সম্পাদনের জন্য দায়ী পৃথক থ্রেড।

প্রতিটি প্রক্রিয়াতে একটি থ্রেড থাকে যা সর্বদা চলমান থাকে। এটি মূল থ্রেড। এই মূল থ্রেডটি আসলে শিশু থ্রেড অবজেক্ট তৈরি করে। শিশু থ্রেডটিও মূল থ্রেড দ্বারা সূচিত হয়েছিল। বর্তমান চলমান থ্রেডটি কীভাবে চেক করা যায় আমি আপনাকে এই নিবন্ধে আরও সমস্ত দেখাব।

সুতরাং এর সাথে, আমি আশা করি আপনি একটি সুতো কী তা স্পষ্টভাবে বুঝতে পেরেছেন। চলমান, আসুন দেখি পাইথনে মাল্টিথ্রেডিং কী।

পাইথনে মাল্টিথ্রেডিং কখন ব্যবহার করবেন?

মাল্টিথ্রেডিং সময় সাশ্রয় এবং কর্মক্ষমতা উন্নত করতে খুব কার্যকর, তবে এটি সর্বত্র প্রয়োগ করা যায় না।
পূর্ববর্তী ফিফার উদাহরণে, সংগীত থ্রেডটি আপনার ইনপুটটি গ্রহণ করে এমন থ্রেডের থেকে পৃথক এবং যে থ্রেড আপনার ইনপুটটি নেয় তা আপনার প্রতিপক্ষকে চালিত থ্রেডের থেকে পৃথক। এই থ্রেডগুলি স্বতন্ত্রভাবে চালিত হয় কারণ এগুলি আন্তঃনির্ভরশীল নয়।

সুতরাং, একাধিক থ্রেডের মধ্যে নির্ভরতা না থাকলেই মাল্টিথ্রেডিং ব্যবহার করা যেতে পারে।

এই নিবন্ধটি আরও দেখায় যে কীভাবে আপনি পাইথনে মাল্টিথ্রেডিং অর্জন করতে পারেন।

পাইথনে মাল্টিথ্রেডিং কীভাবে অর্জন করবেন?

পাইথনে মাল্টিথ্রেডিংটি আমদানি করে অর্জন করা যেতে পারে থ্রেডিং মডিউল

এই মডিউলটি আমদানির আগে আপনাকে এটি ইনস্টল করতে হবে। আপনার অ্যানাকোন্ডা পরিবেশে এটি ইনস্টল করতে আপনার অ্যানাকোন্ডা প্রম্পটে নিম্নলিখিত কমান্ডটি প্রয়োগ করুন:

কনডা ইনস্টল করুন -সি কনডা-ফোর্স টিবিবি

এটির সফলভাবে ইনস্টল হওয়ার পরে, থ্রেডিং মডিউলটি আমদানি করতে আপনি নিম্নলিখিত আদেশগুলি ব্যবহার করতে পারেন:

থ্রেডিং আমদানি থেকে থ্রেডিং আমদানি করুন *

এখন আপনার থ্রেডিং মডিউলটি ইনস্টল করা আছে, আসুন আমরা এগিয়ে যাই এবং পাইথনে মাল্টিথ্রেডিং করি।

পাইথনে থ্রেড কীভাবে তৈরি করবেন?


পাইথনের থ্রেডগুলি তিনটি উপায়ে তৈরি করা যেতে পারে:

  1. ক্লাস তৈরি না করেই
  2. থ্রেড ক্লাস প্রসারিত করে
  3. থ্রেড ক্লাস বাড়ানো ছাড়াই

ক্লাস তৈরি না করেই

পাইথনে মাল্টিথ্রেডিং কোনও ক্লাস তৈরি না করেই সম্পন্ন করা যায়। এখানে একই উদাহরণ দেখানোর জন্য:

উদাহরণ:

থ্রেডিং আমদানি থেকে * মুদ্রণ (কারেন্ট_থ্রেড ()। getName ()) ডিফ এমটি (): মুদ্রণ ('চাইল্ড থ্রেড') চাইল্ড = থ্রেড (টার্গেট = এমটি) চাইল্ড.স্টার্ট () প্রিন্ট ('থ্রেডের নাম চালানো হচ্ছে:', কারেন্ট_থ্যাড ( ) .getName ())

আউটপুট:

মেইনথ্রেড চাইল্ড থ্রেড এক্সিকিউটিং থ্রেডের নাম: মেইনথ্রেড

উপরের আউটপুটটি দেখায় যে উপস্থিত প্রথম থ্রেডটি মূল থ্রেড। এই মূল থ্রেডটি একটি চাইল্ড থ্রেড তৈরি করে যা ফাংশনটি সম্পাদন করে এবং তারপরে চূড়ান্ত মুদ্রণ বিবৃতিটি মূল থ্রেড দ্বারা আবার কার্যকর করা হয়।

এখন আসুন এবং থ্রেড ক্লাসটি বাড়িয়ে অজগরে মাল্টথ্রেডিং কীভাবে করবেন তা দেখুন।

থ্রেড শ্রেণি প্রসারিত করে:

থ্রেড ক্লাস প্রসারিত করে যখন একটি শিশু শ্রেণি তৈরি করা হয়, তখন শিশু শ্রেণি উপস্থাপন করে যে কোনও নতুন থ্রেড কিছু কার্য সম্পাদন করছে। থ্রেড ক্লাস প্রসারিত করার সময়, শিশু শ্রেণি দুটি মাত্র পন্থাকে উদ্বোধন করতে পারে - __init __ () পদ্ধতি এবং রান () পদ্ধতি। এই দুটি পদ্ধতি ব্যতীত অন্য কোনও পদ্ধতি ওভাররাইড করা যাবে না।

থ্রেড তৈরি করতে থ্রেড ক্লাসটি কীভাবে প্রসারিত করা যায় তার একটি উদাহরণ এখানে:

উদাহরণ:

আমদানি থ্রেডিং আমদানির সময় শ্রেণীর মিথকথ (থ্রেডিং.ট্রেড): ডিফ রান (স্ব): এক্স ইন রেঞ্জের জন্য (7): মুদ্রণ ('শিশু থেকে হাই') a = মিথকথ () a.start () a.join () মুদ্রণ ('বাই বাই', কারেন্ট_থ্রেড ()। GetName ())

আউটপুট:
বাচ্চা থেকে হাই
বাচ্চা থেকে হাই
বাচ্চা থেকে হাই
বাচ্চা থেকে হাই
বাচ্চা থেকে হাই
বাচ্চা থেকে হাই
বাচ্চা থেকে হাই
মেইনথ্রেড থেকে বাই

উপরের উদাহরণটি দেখায় যে ক্লাস মাইক্লাস থ্রেড ক্লাস উত্তরাধিকার সূত্রে প্রাপ্ত এবং শিশু শ্রেণি অর্থাত্ মাইক্লাস রান পদ্ধতিতে ওভাররাইড করছে। ডিফল্টরূপে, কোনও শ্রেণীর ফাংশনের প্রথম প্যারামিটারটি স্বয়ং হওয়া দরকার যা বর্তমান বস্তুর পয়েন্টার। আউটপুট দেখায় যে চাইল্ড থ্রেড রান () পদ্ধতিটি কার্যকর করে এবং মূল থ্রেড বাচ্চাদের মৃত্যুদন্ড কার্যকর হওয়ার জন্য অপেক্ষা করে। এটি যুক্ত হওয়া () ফাংশনের কারণে, যা মূল থ্রেডটি সন্তানের সমাপ্তির জন্য অপেক্ষা করে makes

থ্রেড তৈরির এই পদ্ধতিটি সর্বাধিক পছন্দের পদ্ধতি কারণ এটির স্ট্যান্ডার্ড পদ্ধতি। তবে আপনি যদি থ্রেড শ্রেণীর উত্তরাধিকার সূত্রে বা প্রসারিত না করে থ্রেডগুলি তৈরি করতে চান তবে আপনি নিম্নলিখিত পদ্ধতিতে এটি করতে পারেন।

প্রসারিত থ্রেড ক্লাস ছাড়াই

থ্রেড শ্রেণীর প্রসার না বাড়িয়ে কোনও থ্রেড তৈরি করতে, আপনি নিম্নলিখিত হিসাবে এটি করতে পারেন:
উদাহরণ:

থ্রেডিং আমদানি থেকে * ক্লাস প্রাক্তন: ডিএফ মাইফাঙ্ক (স্ব): # এক্স রেঞ্জ (7) এর জন্য ক্লাস ফ্যাঙ্কে প্রথম পরামিতি হিসাবে নিজেকে প্রয়োজন: মুদ্রণ ('শিশু') মায়োবজ = প্রাক্তন () থ্রেড 1 = থ্রেড (লক্ষ্য = মায়োবজ) myfunc) thread1.start () thread1.join () মুদ্রণ ('সম্পন্ন')

আউটপুট:

শিশু
শিশু
শিশু
শিশু
শিশু
শিশু
শিশু
সম্পন্ন

চাইল্ড থ্রেড মাইফাঙ্ক কার্যকর করে যার পরে মূল থ্রেডটি শেষ মুদ্রণ বিবৃতিটি কার্যকর করে।

থ্রেডিং ব্যবহারের সুবিধা

মাল্টিথ্রেডিংয়ের অনেক সুবিধা রয়েছে যার কয়েকটি নিম্নরূপ:

  • সম্পদের আরও ভাল ব্যবহার
  • কোড সরল করে
  • বিভিন্ন কাজের একযোগে এবং সমান্তরাল ঘটনাকে মঞ্জুরি দেয়
  • সময় খরচ বা প্রতিক্রিয়া সময় হ্রাস করে, এর ফলে কর্মক্ষমতা বৃদ্ধি করে।

পাইথনটিতে মাল্টিথ্রেডিং ছাড়াই এবং কোড প্রয়োগ করতে কত সময় লাগে তা পরীক্ষা করার জন্য এখানে একটি উদাহরণ রয়েছে:

 উদাহরণ: 
টাইম ডিএফ স্কয়ার (এন): এক্স এর জন্য এন: টাইম.স্লিপ (1) x% 2 ডিফ কিউব (এন): এক্স ইন এন এর জন্য: টাইম.স্লিপ (1) x% 3 এন = [1,2,3 , 4,5,6,7,8] s = সময়.টাইম () স্কয়ার (এন) কিউব (এন) ই = টাইম.টাইম () প্রিন্ট (এস)

আউটপুট:

16.042309284210205

উপরেরটি হ'ল থ্রেড ব্যবহার না করে প্রোগ্রামটি সম্পাদন করতে আউটপুট সময়। এখন আসুন আমরা থ্রেড ব্যবহার করি এবং দেখুন একই প্রোগ্রামটির কী হয়:

উদাহরণ:

থ্রেডিং আমদানি থেকে থ্রেডিং আমদানি করুন * আমদানির সময় ডিএফ স্কয়ার (এন): এক্স এর জন্য এন: সময়.স্লাইপ (1) প্রিন্ট ('2 দিয়ে বিভাজনের পরে থাকা', x% 2) ডিফ কিউব (এন): এক্স এর জন্য এন: সময়.স্লিপ (1) মুদ্রণ ('3 দিয়ে বিভাজনের পরে', x% 3) এন = [1,2,3,4,5,6,7,8] শুরু = সময়.টাইম () টি 1 = থ্রেড ( টার্গেট = স্কয়ার, আরগস = (এন,)) টি 2 = থ্রেড (টার্গেট = কিউব, আরগস = (এন,)) টি 1.স্টার্ট () টাইম.স্লিপ (1) টি 2.স্টার্ট () টি 1.জাইন () টি 2.জাইন () শেষ = সময়.টাইম () মুদ্রণ (শেষ-শুরু)
আউটপুট: 9.040220737457275

উপরের আউটপুটটি স্পষ্টভাবে দেখায় যে আমরা থ্রেডগুলি ব্যবহার করার সময় নেওয়া সময়টি থ্রেড ব্যবহার না করে একই প্রোগ্রামের জন্য চালিত সময়ের তুলনায় অনেক কম হয়।

আমি আশা করি আপনি পাইথনের মাল্টিথ্রেডিং সম্পর্কিত এই নিবন্ধের আওতায় থাকা ধারণাগুলি পরিষ্কার করেছেন clear এটি যতটা সম্ভব অনুশীলন করতে ভুলবেন না এটি প্রোগ্রামিংয়ে ব্যবহৃত একটি অন্যতম গুরুত্বপূর্ণ ধারণা।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এই 'পাইথনে মাল্ট্রিথ্রেডিং' ব্লগ এবং আমরা মন্তব্য বিভাগে উল্লেখ করুন ইচ্ছাশক্তি যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসুন।

স্ট্রিং জাভাতে পরিবর্তনীয় বা পরিবর্তনযোগ্য

পাইথনের বিভিন্ন অ্যাপ্লিকেশন সহ গভীরতর জ্ঞান পেতে, আপনি লাইভের জন্য তালিকাভুক্ত করতে পারেন 24/7 সমর্থন এবং আজীবন অ্যাক্সেস সহ।