যে আলোচনা থেকে আমি দেখেছি তা দেখে মনে হচ্ছে যে পারমাণবিক অপারেশন এবং থ্রেড সুরক্ষা একই জিনিস, তবে প্রচুর লোকেরা বলে যে তারা আলাদা। কেউ যদি আমাকে একটি পার্থক্য বলতে পারে?
যে আলোচনা থেকে আমি দেখেছি তা দেখে মনে হচ্ছে যে পারমাণবিক অপারেশন এবং থ্রেড সুরক্ষা একই জিনিস, তবে প্রচুর লোকেরা বলে যে তারা আলাদা। কেউ যদি আমাকে একটি পার্থক্য বলতে পারে?
উত্তর:
পরমাণু অপারেশন পটে যাবেন থ্রেড নিরাপত্তা পারেন মত কেশ কোন ধরণের ব্যবহার করে একটি উপায় Mutexes বা Semaphores যা পারমাণবিক অপারেশন অভ্যন্তরীণভাবে ব্যবহার করুন অথবা প্রয়োগ করে লক বিনামূল্যে সিঙ্ক্রোনাইজেশন atomics এবং মেমরি বেড়া ব্যবহার করে।
সুতরাং আদিম তথ্য ধরণের পারমাণবিক ক্রিয়াকলাপগুলি থ্রেড সুরক্ষা অর্জনের একটি সরঞ্জাম তবে থ্রেড সুরক্ষা স্বয়ংক্রিয়ভাবে নিশ্চিত করে না কারণ আপনার সাধারণত একাধিক অপারেশন থাকে যা একে অপরের উপর নির্ভর করে। আপনাকে নিশ্চিত করতে হবে যে এই ক্রিয়াকলাপগুলি কোনও বাধা ছাড়াই সম্পন্ন হয়েছে যেমন Mutexes ব্যবহার করে।
হ্যাঁ, এই # পারমাণবিক ডেটা প্রকারের মধ্যে সি # তে লেখা থ্রেড নিরাপদ তবে এটি আপনি থ্রেডে ব্যবহার করেন এমন ফাংশনটি নিরাপদ করে না। এটি কেবলমাত্র এটি নিশ্চিত করে যে একটি একক লেখাই সঠিকভাবে সম্পাদন করা হয়েছে এমনকি যদি দ্বিতীয় থ্রেডটি "একই সাথে" অ্যাক্সেস করে। কখনও কম নয়, বর্তমান থ্রেড থেকে পরবর্তী পঠনটি আলাদা থ্রেড হিসাবে পূর্বে লিখিত মানটি এটিতে লেখা থাকতে পারে তা নিশ্চিত করা হয় না, কেবলমাত্র মানটি পড়া হয়।
পারমাণবিকতা এবং থ্রেড-সুরক্ষা দুটি পৃথক জিনিস। পারমাণবিকতা একটি অপারেশনের "সমস্ত বা কিছুই না" মানের বোঝায়; যদি কোনও অপারেশন সফলভাবে 100% সম্পাদন করা যায় না, তবে সিস্টেমটি সামগ্রিক অবস্থায় থাকা উচিত অপারেশনটির কোনও অংশ শুরুর আগে এটি আগে ছিল। ক্লাসিক উদাহরণটি একটি ডাটাবেস লেনদেন; কোনও চালান, এর শিরোনাম এবং একাধিক লাইন আইটেমগুলি সংরক্ষণ করার সময়, প্রতিটি একক ডাটাবেস সারির প্রতিটি অংশ অবশ্যই সফলভাবে স্থাপন করা উচিত; যদি তা না হয় তবে ডেটা হারিয়ে গেছে বা ক্ষতিগ্রস্থ হয়েছে। যদি কোনও লাইন আইটেম সন্নিবেশ করা যায় না, তবে কেবলমাত্র অন্য কোনও সারি সন্নিবেশ করা উচিত নয়, তবে ইতিমধ্যে প্রক্রিয়া করা সারিগুলির কোনওটিই অবশিষ্ট থাকবে না।
থ্রেড-সুরক্ষা বলতে পারমাণবিকতা সহ সামগ্রীর সংমিশ্রণকে বোঝায় যা কোনও অপারেশনকে "পুনরায়" হতে দেয়; একাধিক কর্মী একই অপারেশন সম্পাদন করতে পারবেন, একই বা বিভিন্ন সময়ে শুরু হতে পারে, অন্য কোনওর উপর প্রভাব ছাড়াই। থ্রেড-সেফ অপারেশনের জন্য অনেক মডেল রয়েছে; তাদের বেশিরভাগই সম্পূর্ণ বিচ্ছিন্নভাবে একাধিক সমান্তরাল কাজ পরিচালনা করার জন্য ধারণাগতভাবে ফুটিয়ে তোলেন (দু'জন শ্রমিক অন্য কাজকর্মীর অস্তিত্ব না জেনেও দুটি ভিন্ন বস্তু বা বস্তু সংগ্রহের ক্ষেত্রে একই কাজটি সম্পাদন করতে পারেন) বা এর মধ্যে একটি "পাইপলাইন" স্থাপন করতে পারেন একাধিক কর্মী প্রতিটি একটি সম্পূর্ণ ক্রিয়াকলাপের বাইরে একটি কাজ সম্পাদন করে (হয় প্রতিটি শ্রমিক প্রথম কাজ থেকে পরের দিকে অগ্রসর হয় এবং অন্যথায় একটি কাজে মনোনিবেশ করে এবং তার মধ্যবর্তী "কাজের পণ্য" পরবর্তী কর্মীর হাতে তুলে দেয়)।
পারমাণবিক অপারেশন এমন একটি অপারেশন যা বাধা দেওয়া যায় না।
একটি নিরাপদ থ্রেড একটি থ্রেড যা নিরাপদে বাধা দেওয়া যায়।
পারমাণবিক ক্রিয়াকলাপগুলির সাথে থ্রেড সুরক্ষা প্রাপ্ত হয়, বিশেষত যুক্তিতে যে সমালোচনামূলক সংস্থানগুলিকে একাধিকবার অ্যাক্সেস করা থেকে বিরত করে।
প্রাথমিক পারমাণবিক অপারেশন হ'ল টেস্ট-অ্যান্ড-সেট , যা সেমফোরগুলি প্রয়োগের জন্য ব্যবহৃত হয়, যা ঘুরিয়ে সুরক্ষা প্রয়োগে ব্যবহৃত হয়।
থ্রেড-সুরক্ষা আরও একটি কাঠামো বা একটি "ধারণা", পারমাণবিক ক্রিয়াকলাপকে একটি শ্রেণীবদ্ধ হিসাবে 'থ্রেড-সেফ' হিসাবে স্ট্যাটাস অর্জনের একটি উপসেট, একটি (অনেকের মধ্যে একটি) উপায়।
থ্রেড সুরক্ষা এমন একটি প্রক্রিয়া বোঝায় যা পৃথক থ্রেড দ্বারা অ্যাক্সেস করা যায়, যেখানে একের অ্যাক্সেস (এবং ডেটা ম্যানিপুলেশন), অন্যটির ক্রিয়াকলাপের অখণ্ডতাটিকে নষ্ট করে না।
প্রোগ্রামারটির বেশিরভাগ দক্ষতা কীভাবে এটি অর্জন করতে হবে তা পরিস্থিতি এবং মূল লক্ষ্যগুলির উপর নির্ভর করে আপনাকে বাস্তবায়নের প্রয়োজন হতে পারে, উদাহরণস্বরূপ: তালা, সেমফোরস, ল্যাচস, পারমাণবিক অবজেক্টস, সিঙ্ক্রোনাইজেশন বিধি ইত্যাদি ...