পারমাণবিক বনাম নন পারমাণবিক বৈশিষ্ট্য ক্রাশ কোর্স

উদ্দেশ্য-সি বৈশিষ্ট্যগুলি পারমাণবিক বা নন্যাটমিক হিসাবে সংজ্ঞায়িত করা যেতে পারে could

উভয়ের মধ্যে পার্থক্য কী এবং কীভাবে সুইফট বৈশিষ্ট্যগুলি আচরণ করে? পারমাণবিক না অণু?

পারমাণবিক সম্পত্তি

পারমাণবিক হিসাবে কোনও সম্পত্তি নির্ধারণ করা গ্যারান্টি দেয় যে একটি বৈধ মান ফিরে আসবে। লক্ষ্য করুন যে বৈধের অর্থ সর্বদা সঠিক নয় (এই পোস্টের পরবর্তী বিভাগে আরও)।

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

মান নির্ধারণের আগে / পরে লক করা এবং আনলক করার কারণে পারমাণবিক বৈশিষ্ট্যগুলি সামান্য পারফরম্যান্সের আঘাতের শিকার হয়।

পারমাণবিক বৈশিষ্ট্যগুলির জন্য পূর্বনির্ধারিত আচরণ - আপনি যদি কিছু নির্দিষ্ট না করেন তবে এটিই আপনি পাবেন।

পারমাণবিক বৈশিষ্ট্য এবং থ্রেড উদাহরণ

ধরা যাক আমাদের একটি পারমাণবিক সম্পত্তি রয়েছে:

বিন্দু = সিজিপিয়েন্ট (x: 10, y: 10)

আমাদের অ্যাপে আমাদের তিনটি থ্রেড রয়েছে যা একই সাথে আমাদের পয়েন্ট সম্পত্তিটি অ্যাক্সেস করার চেষ্টা করছে।

  • থ্রেড এ সিজিপয়েন্টের সম্পত্তি পড়ার চেষ্টা করে
  • থ্রেড বি সেট করছে বিন্দু = সিজিপিয়েন্ট (x: 1, y: 1)
  • থ্রেড সি বিন্দু নির্ধারণ করছে = সিজিপিয়েন্ট (x: 5, y: 5)

বড় প্রশ্ন হ'ল এ থ্রেডে কী ফিরিয়ে দেওয়া হবে?

নিম্নলিখিত তিনটি মানগুলির মধ্যে একটি:

(x = 10, y = 10)
(x = 1, y = 1)
(x = 5, y = 5)

আমরা আরও একটি প্রশ্ন জিজ্ঞাসা করতে পারি - পয়েন্ট সম্পত্তির চূড়ান্ত মান কী হবে?

নিম্নলিখিত দুটি মানগুলির মধ্যে একটি:

(x = 1, y = 1)
(x = 5, y = 5)

অ পারমাণবিক সম্পত্তি

নন পারমাণবিক বৈশিষ্ট্যের প্রত্যাবর্তিত মান সম্পর্কিত কোনও গ্যারান্টি নেই এটি সঠিক মান, একটি আংশিক লিখিত মান বা এমনকি কিছু আবর্জনা মূল্য হতে পারে।
বেশিরভাগ জিনিস যা নিরাপদ নয় - এটি এই বৈশিষ্ট্য অ্যাক্সেস করার বর্ধিত গতি সহ আসে।

অ পারমাণবিক বৈশিষ্ট্য এবং থ্রেড উদাহরণ

আসুন একই পয়েন্টের সম্পত্তি এবং একই তিনটি থ্রেডকে পারমাণবিক বৈশিষ্ট্যের থ্রেডের উদাহরণ হিসাবে ঠিক একই জিনিসগুলি করি।

থ্রেড এ কী ফিরিয়ে দেওয়া হবে?

অজানা! এটি পূর্ববর্তী উদাহরণে তিনটি পৃথক মানগুলির মধ্যে একটি হতে পারে। এটি এমনকি হতে পারে (x = 5, y = 1) দুটি থ্রেড একই সাথে মান সেট করার চেষ্টা করছে। মানটি আংশিকভাবে লেখা হয়েছে এবং আমরা একটি আংশিক লিখিত মান ফিরে পাচ্ছি।

উদ্দেশ্য-সি রানটাইম কীভাবে এটি করে?

আসুন উদ্দেশ্য-সি রান সময়ের জন্য "সেট মান" পদ্ধতিটি দেখুন।

লক্ষ্য করুন যে কীভাবে অ-পারমাণবিক বৈশিষ্ট্যগুলি সম্পত্তিটির মূল্য নির্ধারণ করছে যখন পারমাণবিক সম্পত্তি সেট অপারেশনটিকে সুরক্ষিত করতে লক ব্যবহার করে।

সুইফ্টের কী হবে?

সুইফ্ট বৈশিষ্ট্যগুলি ডিফল্টরূপে অ পারমাণবিক।
তবে - অ্যাপল এর কোকো এবং অবজেক্টিভ-সি (সুইফট 3.1) সহ সুইফট ব্যবহার করছে:

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

সুতরাং - আপনি যদি উদ্দেশ্য-সি-তে কোনও পারমাণবিক সম্পত্তি সংজ্ঞায়িত করেন তবে সুইফট যখন এটি ব্যবহার করবেন তখন এটি পারমাণবিক থাকবে।