একযোগে সম্পাদনকারী ইউনিটগুলির সাথে সর্বোচ্চ পারফরম্যান্সের জন্য, আপনার নিজের থ্রেড পুলটি লিখুন, যেখানে থ্রেড অবজেক্টের একটি পুল শুরুতে তৈরি করা হয় এবং চালনার জন্য একটি প্রসঙ্গে অপেক্ষা করে (পূর্বে স্থগিত করা হয়) ব্লক করতে যান (একটি স্ট্যান্ডার্ড ইন্টারফেস সহ একটি বস্তু প্রয়োগ করা হয়) তোমার গোপন সংকেত).
টাস্ক বনাম থ্রেড বনাম বনাম। নেট থ্রেডপুল সম্পর্কে এতগুলি নিবন্ধগুলি আপনাকে কার্য সম্পাদনের সিদ্ধান্ত নিতে যা প্রয়োজন তা আপনাকে সত্যই দিতে ব্যর্থ হয়। তবে আপনি যখন এগুলি তুলনা করেন, থ্রেডগুলি জিতে যায় এবং বিশেষত থ্রেডসের একটি পুল। এগুলি সিপিইউগুলিতে সেরা বিতরণ করা হয় এবং তারা দ্রুত শুরু হয়।
যা আলোচনা করা উচিত তা হ'ল উইন্ডোজের মূল নির্বাহ ইউনিট (উইন্ডোজ 10 সহ) একটি থ্রেড, এবং ওএসের প্রসঙ্গে সুইচিং ওভারহেড সাধারণত নগণ্য igible সহজ কথায় বলতে গেলে, এই নিবন্ধটি প্রাসঙ্গিক স্যুইচিং বা আরও ভাল সিপিইউ ব্যবহারের সংরক্ষণ করে নিবন্ধটি উচ্চতর পারফরম্যান্সের দাবি করে কিনা সেগুলির অনেকের দৃinc়প্রত্যয়ী প্রমাণ আমি খুঁজে পাচ্ছি না।
এখন কিছুটা বাস্তবতার জন্য:
আমাদের বেশিরভাগেরই আমাদের অ্যাপ্লিকেশনটি ডিটারমিনিস্টিক হওয়ার প্রয়োজন হবে না এবং আমাদের বেশিরভাগের থ্রেডগুলির সাথে হার্ড-নকশ ব্যাকগ্রাউন্ড নেই, উদাহরণস্বরূপ প্রায়শই অপারেটিং সিস্টেম বিকাশের সাথে আসে। আমি উপরে যা লিখেছি তা কোনও শিক্ষানবিশের জন্য নয়।
সুতরাং সবচেয়ে গুরুত্বপূর্ণ হতে পারে যেটি আলোচনা করা হ'ল প্রোগ্রামটি সহজ।
যদি আপনি নিজের থ্রেড পুল তৈরি করেন তবে আপনার প্রয়োগের বাস্তবায়ন সম্পর্কিত পরিস্থিতি, কীভাবে স্থগিতকরণ এবং পুনরায় কাজ শুরু করতে হবে এবং কীভাবে কার্যকর করতে হবে - যেমন অ্যাপ্লিকেশন-সহ অন্তর্ভুক্ত রয়েছে তার সাথে আপনার লেখার কিছুটা দরকার বন্ধ। আপনি আপনার পুলকে গতিময়ভাবে বৃদ্ধি করতে চান কিনা এবং আপনার পুলের কী সীমাবদ্ধতা থাকবে তা নিয়েও আপনাকে উদ্বিগ্ন হতে পারে। আমি এক ঘন্টার মধ্যে এই জাতীয় কাঠামো লিখতে পারি তবে এটি কারণ আমি এটি বহুবার করেছি।
সম্ভবত একটি এক্সিকিউশন ইউনিট লেখার সবচেয়ে সহজ উপায় হ'ল একটি টাস্ক ব্যবহার করা। একটি কার্যের সৌন্দর্য হ'ল আপনি একটি তৈরি করতে এবং এটিকে আপনার কোডের লাইন থেকে কিক করতে পারেন (তবে সতর্কতা সতর্ক হতে পারে)। আপনি যখন টাস্কটি বাতিল করতে চান তখন হ্যান্ডেল করার জন্য আপনি একটি বাতিলকরণ টোকনটি পাস করতে পারেন। এছাড়াও, এটি ইভেন্টগুলিকে শৃঙ্খলাবদ্ধ করার প্রতিশ্রুতি পদ্ধতির ব্যবহার করে এবং আপনি এটি একটি নির্দিষ্ট ধরণের মান ফিরিয়ে আনতে পারেন। তদুপরি, অ্যাসিঙ্ক এবং প্রতীক্ষার সাহায্যে আরও বিকল্প রয়েছে এবং আপনার কোডটি আরও পোর্টেবল হবে।
সংক্ষেপে, টাস্ক বনাম থ্রেড বনাম।। নেট থ্রেডপুলের উপকারিতা এবং কৌশলগুলি বোঝা গুরুত্বপূর্ণ important আমার যদি উচ্চতর পারফরম্যান্সের প্রয়োজন হয় তবে আমি থ্রেড ব্যবহার করতে যাচ্ছি এবং আমি আমার নিজের পুল ব্যবহার করতে পছন্দ করি।
তুলনা করার একটি সহজ উপায় 512 থ্রেড, 512 কার্য এবং 512 থ্রেডপুলের থ্রেড শুরু করা। আপনি থ্রেডস দিয়ে শুরুতে বিলম্ব দেখতে পাবেন (অতএব, থ্রেড পুল কেন লিখুন) তবে সমস্ত 512 থ্রেড কয়েক সেকেন্ডের মধ্যে চলতে থাকবে যখন টাস্ক এবং .NET থ্রেডপুলের থ্রেডগুলি শুরু হতে কয়েক মিনিট সময় নেয়।
নীচে এমন পরীক্ষার ফলাফল দেওয়া হয়েছে (১ 16 গিগাবাইট র্যাম সহ আই 5 কোয়াড কোর), প্রতি 30 সেকেন্ড চালানোর জন্য দেয়। কার্যকর করা কোডটি একটি এসএসডি ড্রাইভে সহজ ফাইল I / O সম্পাদন করে।
পরীক্ষার ফলাফল