থ্রেড পুল কী?


62

কেউ কীভাবে একটি থ্রেডপুল বাস্তবায়ন করবে? আমি "থ্রেডপুল" এর জন্য উইকিপিডিয়ায় পড়ছি তবে এখনও এই প্রশ্নটি সমাধান করার জন্য কার কী করা উচিত তা আমি এখনও বুঝতে পারি না (সম্ভবত থ্রেডপুলটি সহজ ভাষায় কী তা আমি যথেষ্ট বুঝতে পারি নি)।

কোনও থ্রেডপুল কী এবং আমাকে কীভাবে এই প্রশ্নের উত্তর দিতে পারে তা আমাকে সরল ইংরেজিতে ব্যাখ্যা করতে পারে?

উত্তর:


96

একটি থ্রেড পুল হ'ল প্রাক-ইনস্ট্যান্টিয়েটেড, অলস থ্রেডগুলির একটি গ্রুপ যা কাজ দেওয়ার জন্য প্রস্তুত। এগুলি প্রতিটি কাজের জন্য নতুন থ্রেড ইনস্ট্যান্ট করার চেয়ে বেশি পছন্দ করা হয় যখন সংখ্যার দীর্ঘ সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংখ্যক সংক্ষিপ্ত সংখ্যক কাজ করা উচিত। এটি প্রচুর পরিমাণে থ্রেড তৈরির ওভারহেড ব্যয় করতে বাধা দেয়।

বাস্তবায়ন পরিবেশ অনুসারে পরিবর্তিত হতে পারে, তবে সরলীকৃত পদগুলিতে আপনার নিম্নলিখিত প্রয়োজন:

  • থ্রেড তৈরি এবং এটিকে অলস অবস্থায় ধরে রাখার একটি উপায়। পুলটি কাজ না করা অবধি প্রতিটি থ্রেড বাধার জন্য অপেক্ষা করে সম্পন্ন করা যায়। (এটিও মিটেক্সেস দিয়ে করা যেতে পারে))
  • তৈরি থ্রেডগুলি সংরক্ষণ করার জন্য একটি ধারক, যেমন একটি সারি বা অন্য কোনও কাঠামো যাতে পুলটিতে একটি থ্রেড যুক্ত করতে এবং একটিকে টেনে আনার উপায় রয়েছে।
  • থ্রেডগুলিতে কাজ করার জন্য একটি স্ট্যান্ডার্ড ইন্টারফেস বা বিমূর্ত শ্রেণি। এটি একটি বিমূর্ত বর্গ বলা হতে পারে Taskএকটি সঙ্গে execute()পদ্ধতি যে কাজ ফেরৎ করে এবং তারপর।

থ্রেড পুলটি তৈরি করা হলে এটি বাস্তবায়নের প্রয়োজনীয়তার উপর নির্ভর করে প্রয়োজনীয় সংখ্যক থ্রেড সরবরাহ করতে বা নতুন তৈরি করার জন্য তাত্ক্ষণিকভাবে কাজ করবে।

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


19
একটি থ্রেড পুল হ'ল প্রাক-ইনস্ট্যান্টিয়েটেড, অলস থ্রেডগুলির একটি গ্রুপ যা কাজ দেওয়ার জন্য প্রস্তুত। [...] এটি প্রচুর পরিমাণে থ্রেড তৈরির ওভারহেড ব্যয় করতে বাধা দেয়। - যখনই কেউ "থ্রেড পুল" অনুসন্ধান করে Google এর দ্বারা এটি করা উচিত
রাফায়েল আইং

কি থ্রেড পুল সৃষ্টি অভ্যন্তরীণভাবে বাধা জড়িত? আপনি কি এই লাইনে রেফারেন্স শেয়ার করতে পারবেন?
ওভাররেঞ্জচেঞ্জ

@ সার্বভৌম পরিবর্তন, না তা না। এই প্রশ্নের আমার উল্লেখটি আপনার বাধা প্রশ্নটি পুনরায় লেখার আরও ভাল পদ্ধতির উদাহরণ হিসাবে ছিল । (যদি আপনি তা করেন তবে আমি একটি উত্তর লিখব))
ব্লারফ্ল

একটি সেরা সংক্ষিপ্ত উত্তর।
রক্ত-হাজ্জারা

10

থ্রেড পুল হ'ল পরিচালিত থ্রেডগুলির একটি সংগ্রহ যা সাধারণত একটি কাতারে সজ্জিত হয়, যা টাস্ক কাতারে কার্য সম্পাদন করে।

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

থ্রেড পুল আপনাকে আরও বেশি থ্রেড তৈরি করা বা ধ্বংস করা এড়াতে সহায়তা করে, যা সত্যই প্রয়োজনের চেয়ে বেশি।

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


1

মাল্টিথ্রেডেড অ্যাপ্লিকেশনটিতে, থ্রেড পুল হ'ল "উপলব্ধ থ্রেডগুলির পুল" যা আপনার অ্যাপ্লিকেশন দ্বারা ব্যবহার করা যেতে পারে। সাধারণত,। নেট, এটি সমস্ত পরিচালিত হয় যাতে আপনি কেবল কার্যগুলি বরাদ্দ করেন এবং একবার থ্রেড মুক্ত হয়ে গেলে এটি এটি সম্পাদন করে চলেছে। সুতরাং থ্রেডপুলটি বাস্তবায়নের জন্য, আমি একটি ধারণা তৈরি করতে আশা করব যেখানে প্রতিটি কার্যের জন্য সুস্পষ্ট থ্রেড তৈরি না করে ফ্রি থ্রেড দ্বারা স্বয়ংক্রিয়ভাবে কাজগুলি নেওয়া হয়।


1

বাস্তব জীবনের উদাহরণ;

  1. সুবিধা: অপারেটিং সিস্টেম
  2. বিভাগ: অ্যাপ্লিকেশন
  3. লোক: থ্রেড

আপনার একটি সুবিধা রয়েছে সেখানে 12 জন লোক কাজ করছে। এই সুবিধার 3 টি বিভাগ রয়েছে। রান্নাঘর, রেস্টরুম এবং সুরক্ষা। আপনি যদি থ্রেড পুল কৌশলটি ব্যবহার না করেন তবে এটি কীভাবে কাজ করে: সমস্ত 12 জন মিটিং রুমে দাঁড়িয়ে থাকবেন, যদি নতুন গ্রাহকরা সুযোগ-সুবিধার সাথে এসে কাজগুলি জিজ্ঞাসা করেন, তবে আপনি লোকদের দলে আলাদা করবেন এবং তাদের কাজটি করার জন্য তাদের প্রেরণ করবেন , এবং সভা সভায় ফিরে আসুন। তবে, তারা তাদের ডিউটিতে যাওয়ার আগে একটি প্রস্তুতি পর্ব রয়েছে। তাদের সঠিক ইউনিফর্ম পরিধান করা, নির্দিষ্ট ডিভাইস সজ্জিত করা এবং সেই বিভাগে হাঁটা, কাজ শেষ এবং ফিরে আসা দরকার। সুতরাং, প্রতিবার তারা যখন কাজ শেষ করে (থ্রেড শেষ হয়), তাদের আবার সভা কক্ষে ফিরে যেতে হবে, ইউনিফর্মের পোশাক পরিধান করতে হবে, সরঞ্জামগুলি বের করতে হবে এবং পরবর্তী কাজের জন্য অপেক্ষা করতে হবে। এগুলি থ্রেডের প্রসঙ্গ তৈরি করতে বোঝায়, এটি মেমরির বরাদ্দ এবং ওএস দ্বারা তথ্য ট্র্যাক করে।

যদি আপনি থ্রেড পুলিং ব্যবহার করে থাকেন তবে খুব ভোরে আপনি 6 জনকে রান্নাঘরে, 2 জনকে রেস্টরুমে এবং 4 জনকে সুরক্ষার জন্য নিযুক্ত করবেন। সুতরাং, তারা কেবলমাত্র একবারে তাদের প্রস্তুতি নেবে। এমনকি যদি রান্নাঘরে কোনও গ্রাহক না থাকে তবে আসন্ন যে কোনও কাজের জন্য এই 4 জন লোক সেখানে উপস্থিত থাকবে id রান্নাঘর বন্ধ না হওয়া (অ্যাপ শেষ) না হওয়া পর্যন্ত তাদের মিটিং রুমে ফিরে যাওয়ার দরকার নেই। এই 4 জন লোক রান্নাঘরের অ্যাপ পুলে রয়েছে এবং দ্রুত পরিবেশন করার জন্য প্রস্তুত। তবে, আপনি প্রতিশ্রুতি দিতে পারবেন না যে তারা সারাদিন পাশাপাশি কাজ করছেন, যেহেতু রান্নাঘর সময়ে সময়ে অলস হয়ে উঠতে পারে। একই যুক্তি রেস্টরুম এবং সুরক্ষার জন্যও প্রযোজ্য।

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.