কী পার্থক্য – চলমান বনাম থ্রেড
একটি কার্যকরী প্রোগ্রাম একটি প্রক্রিয়া হিসাবে পরিচিত। প্রক্রিয়াটিকে একাধিক সাবপ্রসেসে ভাগ করা যায়। যেমন Microsoft Word একটি প্রক্রিয়া। একই সময়ে, এটি বানান ভুল এবং ব্যাকরণ পরীক্ষা করে। এটি একটি সাবপ্রসেস। এই সাবপ্রসেসগুলি থ্রেড হিসাবে পরিচিত। মাল্টিথ্রেডিং হল একাধিক থ্রেড একসাথে চালানোর প্রক্রিয়া। থ্রেডেড অ্যাপ্লিকেশন বিভিন্ন প্রোগ্রামিং ভাষা ব্যবহার করে তৈরি করা যেতে পারে। রানেবল এবং থ্রেড জাভা প্রোগ্রামিং এর সাথে যুক্ত। রানেবল ইন্টারফেস প্রয়োগ করে বা থ্রেড ক্লাস প্রসারিত করে একটি থ্রেড তৈরি করার জন্য জাভাতে দুটি পদ্ধতি রয়েছে।Runnable প্রয়োগ করার সময়, অনেক থ্রেড একই থ্রেড অবজেক্ট শেয়ার করতে পারে যখন Extending Thread ক্লাসে, প্রতিটি থ্রেডের সাথে একটি অনন্য বস্তু যুক্ত থাকে। এটি রানেবল এবং থ্রেডের মধ্যে মূল পার্থক্য।
চালানযোগ্য কি?
একটি থ্রেড কিছু রাজ্যের মধ্য দিয়ে যায়। "নতুন" হল থ্রেড জীবনচক্রের শুরু। start() পদ্ধতিটি একটি নতুন থ্রেডে কল করার পরে, এটি চালানোর যোগ্য হয়ে ওঠে। থ্রেড সময়সূচী থ্রেড নির্বাচন করলে, এটি চলমান অবস্থায় স্থানান্তরিত হয়। থ্রেডটি রাজ্যের জন্য অপেক্ষা করছে যদি সেই থ্রেডটি একটি কাজ সম্পাদন করার জন্য অন্য থ্রেডের জন্য অপেক্ষা করে। থ্রেডটি কাজ শেষ করার পরে, এটি সমাপ্তির অবস্থায় চলে যায়৷
একটি থ্রেড রানেবল ইন্টারফেস ব্যবহার করে প্রয়োগ করা যেতে পারে। নিচের প্রোগ্রামটি দেখুন।
চিত্র 01: রানেবল ইন্টারফেস ব্যবহার করে একটি থ্রেড তৈরি করতে জাভা প্রোগ্রাম
উপরের প্রোগ্রাম অনুযায়ী, ক্লাস রানেবল ডেমো রানেবল ইন্টারফেস প্রয়োগ করে। রান() পদ্ধতিটি ক্লাসের ভিতরে রয়েছে যা রানেবল ইন্টারফেস প্রয়োগ করে। এটি থ্রেডের প্রবেশ বিন্দু। লজিক রান() পদ্ধতিতে রয়েছে। মূল প্রোগ্রামে, রানেবল ডেমো ক্লাস থেকে ইনস্ট্যান্টিয়েট করা একটি অবজেক্টকে সংজ্ঞায়িত করে একটি থ্রেড তৈরি করা হয়। এটি টি 1। t1 ব্যবহার করে start() পদ্ধতি বলা হয়।
নিচের প্রোগ্রামটি পড়ুন।
চিত্র 02: রানেবল ইন্টারফেস বাস্তবায়নের মাধ্যমে লুপ চালানোর জন্য একটি থ্রেড তৈরি করতে জাভা প্রোগ্রাম
উপরের উদাহরণ অনুসারে, ক্লাস রানেবল ডেমো রানেবল ইন্টারফেস প্রয়োগ করে। থ্রেড ব্যবহার করে চালানোর যুক্তি run() পদ্ধতিতে লেখা হয়। মূল প্রোগ্রামে, রানেবল ডেমো ক্লাস থেকে ইনস্ট্যান্টিয়েট করা একটি অবজেক্টকে সংজ্ঞায়িত করে একটি থ্রেড তৈরি করা হয়।এটি টি 1। তারপর, t1 ব্যবহার করে start() পদ্ধতি বলা হয়।
থ্রেড কি?
থ্রেড তৈরির অন্য পদ্ধতি হল থ্রেড ক্লাস প্রসারিত করা। এটি তিনটি ধাপ নিয়ে গঠিত। প্রথমে ক্লাসটিকে থ্রেড ক্লাস প্রসারিত হিসাবে ঘোষণা করা হয়। এরপর রান() মেথড লিখতে হবে। এটিতে থ্রেডটি চালানো উচিত পদক্ষেপগুলির ক্রম রয়েছে৷ অবশেষে, থ্রেড অবজেক্ট তৈরি করা হয়, এবং থ্রেড কার্যকর করার জন্য start() পদ্ধতি বলা হয়। নিচের প্রোগ্রামটি দেখুন।
চিত্র 03: জাভা প্রোগ্রাম যা থ্রেড ক্লাস প্রসারিত করে
উপরের প্রোগ্রাম অনুযায়ী, MyThread ক্লাস থ্রেড ক্লাস প্রসারিত করে। এটি রান পদ্ধতি ওভাররাইড করে। রান() পদ্ধতিতে থ্রেড দ্বারা কার্যকর করা যুক্তি রয়েছে। এটি থ্রেডের প্রবেশ বিন্দু।তারপর থ্রেড অবজেক্ট তৈরি হয়। এটা থ্রেড 1. থ্রেডটি start() পদ্ধতি ব্যবহার করে শুরু করা হয়েছে। এটি রান() পদ্ধতিতে একটি কল নির্বাহ করবে।
থ্রেড ক্লাস প্রসারিত দুটি ক্লাসের একটি উদাহরণ প্রোগ্রাম নিম্নরূপ।
চিত্র 04: দুটি ক্লাস সহ জাভা প্রোগ্রাম যা থ্রেড ক্লাস প্রসারিত করে
উপরের প্রোগ্রাম অনুসারে, A এবং B উভয় শ্রেণিই থ্রেড ক্লাস প্রসারিত করছে। উভয় শ্রেণীর রান() পদ্ধতির প্রয়োগ রয়েছে। প্রধান থ্রেড হল যা main() পদ্ধতিটি কার্যকর করে। প্রধান থ্রেড মারা যাওয়ার আগে, এটি থ্রেড1 এবং থ্রেড2 তৈরি করে এবং শুরু করে। মূল থ্রেডটি মূল পদ্ধতির শেষে পৌঁছে যাওয়ার সময়, তিনটি থ্রেড সমান্তরালভাবে চলছে। থ্রেডগুলি আউটপুট দেয় এমন কোনও নির্দিষ্ট ক্রম নেই। একবার থ্রেড শুরু হলে তারা যে আদেশটি কার্যকর করবে তা নির্ধারণ করা কঠিন।তারা স্বাধীনভাবে চালায়।
চালানযোগ্য এবং থ্রেডের মধ্যে মিল কী?
দুজনেই জাভাতে একটি থ্রেড তৈরি করতে ব্যবহার করছে।
চালানযোগ্য এবং থ্রেডের মধ্যে পার্থক্য কী?
চলবে বনাম থ্রেড |
|
Runnable হল জাভাতে একটি থ্রেড তৈরি করার জন্য একটি ইন্টারফেস যা অনেক থ্রেডকে একই থ্রেড অবজেক্ট শেয়ার করতে দেয়। | থ্রেডটি জাভাতে একটি থ্রেড তৈরি করার জন্য একটি ক্লাস যেখানে প্রতিটি থ্রেডের সাথে একটি অনন্য বস্তু যুক্ত থাকে। |
স্মৃতি | |
রাননেবলে, একাধিক থ্রেড একই বস্তু শেয়ার করে, তাই কম মেমরির প্রয়োজন হয়। | থ্রেড ক্লাসে, প্রতিটি থ্রেড একটি অনন্য বস্তু তৈরি করে, তাই আরও মেমরির প্রয়োজন। |
সম্প্রসারণ ক্ষমতা | |
চালানযোগ্য ইন্টারফেস প্রয়োগ করার পরে, এটি একটি ক্লাস প্রসারিত করতে পারে৷ | একাধিক উত্তরাধিকার জাভাতে সমর্থিত নয়। থ্রেড ক্লাস প্রসারিত করার পরে, এটি অন্য কোনও ক্লাস প্রসারিত করতে পারে না। |
কোড রক্ষণাবেক্ষণযোগ্যতা | |
চালানযোগ্য ইন্টারফেস কোডকে আরও রক্ষণাবেক্ষণযোগ্য করে তোলে। | থ্রেড ক্লাসে, বজায় রাখা সময়সাপেক্ষ। |
সারাংশ – চলমান বনাম থ্রেড
একই সময়ে একাধিক কাজ সম্পাদন করার জন্য একটি প্রক্রিয়া একাধিক উপ-প্রক্রিয়ায় বিভক্ত। এই সাবপ্রসেসগুলি থ্রেড হিসাবে পরিচিত। রানেবল ইন্টারফেস প্রয়োগ করে বা থ্রেড ক্লাস প্রসারিত করে একটি থ্রেড ইনস্ট্যান্টিয়েটিং করা যেতে পারে। থ্রেড ক্লাস প্রসারিত করা সহজ, কিন্তু এটি একটি ভাল অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং অনুশীলন নয়।রানেবল প্রয়োগ করার সময়, অনেক থ্রেড একই থ্রেড অবজেক্ট শেয়ার করতে পারে যখন থ্রেড ক্লাস প্রসারিত করার সময় প্রতিটি থ্রেডের সাথে একটি অনন্য বস্তু যুক্ত থাকে। এটি রানেবল এবং থ্রেডের মধ্যে পার্থক্য। থ্রেড ক্লাসে একাধিক অবজেক্ট তৈরি করা আরও মেমরি গ্রাস করতে পারে।
রাননেবল বনাম থ্রেডের PDF ডাউনলোড করুন
আপনি এই নিবন্ধটির PDF সংস্করণ ডাউনলোড করতে পারেন এবং উদ্ধৃতি নোট অনুসারে অফলাইন উদ্দেশ্যে এটি ব্যবহার করতে পারেন। দয়া করে এখানে পিডিএফ সংস্করণ ডাউনলোড করুন রানেবল এবং থ্রেডের মধ্যে পার্থক্য