আমি মনে করি আপনার সংস্থার মাল্টিথ্রেডিং ব্যবহার করা উচিত নয়।
ব্যাপকভাবে বহুবিবাহিত প্রকল্প করার পরে আমি দেখতে পেলাম যে দুটি জিনিস জিনিসকে কাজ করার জন্য গুরুত্বপূর্ণ। প্রথমত , কোডটি ঠিক লিখতে হয়েছিল। এটি যথাযথভাবে ঘোষিত হয়েছে এবং যথাযথ যেভাবে যে কোনও যানবাহনকে রেফারেন্স করা হয়েছে তা নিশ্চিত করার জন্য প্রতিটি ক্ষেত্রটি ম্যানুয়ালি পরীক্ষা করে দেখতে হয়েছিল। (সতর্কতা: আমি আমার উত্তরটি সংক্ষিপ্ত রাখতে - বা যে কোনও মূল্যে সংক্ষিপ্ততর করতে এখানে কিছুটা সহজ করছি) দ্বিতীয়ত , কোডটি একক এবং মাল্টিকোর মেশিনে ফ্ল্যাট করে চালিয়ে পরীক্ষা করাতে হয়েছিল - 100% ব্যবহার করে অনেক মিনিট প্রতিটি কোর এর। (এবং যদি এটি প্রতিটি কোরের কেবলমাত্র 2% ব্যবহার করে, যেমনটি প্রায়শই আমার পক্ষে হয়ে থাকে, এটিও একটি বাগ))
আপনি এটি পরিচালনা করতে সক্ষম হতে পারেন, কিন্তু আপনার সংস্থা এটি করতে পারে না। এমনকি যদি তারা সমস্যাটি বোঝে, যা তারা না করে তবে তাদের দক্ষতা নেই।
বেশিরভাগ ভাষা এগুলি এড়ানোর উপায় সরবরাহ করে। আপনার যদি সকেট রিডার থাকে, যার সাধারণত নিজস্ব থ্রেড থাকে, তা কী তাড়াতাড়ি এবং সহজলভ্যভাবে মূল থ্রেডের কাছে তথ্যটি পান। আরও ভাল, সিস্টেম ক্লাস / ফাংশন সন্ধান করুন যা আপনার জন্য পঠনের থ্রেড অংশটি পরিচালনা করবে। বেশিরভাগ জিইআইআই এপিআইয়ের মতো একের পর এক "ইভেন্ট" চালিত এমন একটি সারি ব্যবহার করুন। (GUI API এর ইভেন্টের সারিটি নিজেই ব্যবহার করুন)) আপনার যদি সমান্তরাল প্রক্রিয়াকরণের প্রয়োজন হয় তবে আপনি সম্ভবত কিছু ধরণের "কর্মী থ্রেড" পেতে পারেন যা আপনাকে আপনার জন্য সমস্ত স্থানান্তর পরিচালনা করে একক থ্রেডে ডেটা / ক্ষেত্রগুলি রাখতে দেয়।
মাল্টিথ্রেডিংয়ের সমস্ত বিপদে জোর দিন। (ভয়ের গল্প: আমার প্রিয় বাগ মত লাইনের একটি দম্পতি জড়িত int i = 5; i = i * i;, যা ফলে i35 এক আমি একটি মান না থাকার দেখেছি অনেক ছিল: if (thing != null) thing.reset();। একটি নাল পয়েন্টার ব্যতিক্রম নিক্ষেপ) আমি মনে করেন যে আপনার একমাত্র আশা তাদের করছে বুঝতে তারা পুরো, নতুন, অদ্ভুত বিশ্বে পদক্ষেপ নেওয়া এবং সম্ভবত তাদের একটি বড় পদক্ষেপ নেওয়া উচিত।
মাল্টিথ্রিডিং কীভাবে পরিচালনা করা উচিত তা আমি নিশ্চিত নই । যদি কোনও ব্যক্তিকে কাজ দেওয়া যায় এবং তারা ব্যর্থ হলে তারা ফেলে দেওয়া সমস্ত কিছু ঠিক আছে। তবে একটি দল কেবল তার দুর্বলতম সদস্যের মতোই শক্তিশালী হতে চলেছে, এমনকি একটি ভাল প্রোগ্রামারও পুরো-বিকাশযুক্ত মাল্টিথ্রেডিংয়ের সাথে সমস্যায় পড়বে। আমি আশা করি ভাষাটির লোকেরা এটি নিরাপদ করার জন্য কোনও উপায় খুঁজে পাবেন। আমি সেখানে কিছু সহায়ক সফ্টওয়্যার দেখেছি। তবে আমি মনে করি, যদি মৃত্যুদণ্ড কার্যকর করার সময়টি সমালোচনা না করে এবং একটি ভাল প্রোগ্রামার বা প্রমাণিত দল না পাওয়া যায় তবে মাল্টিথ্রেডিং এড়ানো ভাল ।