অবজেক্টিভ-সিতে আপনার পারমাণবিক এবং ননোটমিক বৈশিষ্ট্যের মধ্যে পার্থক্য রয়েছে:
@property (nonatomic, strong) NSObject *nonatomicObject;
@property (atomic, strong) NSObject *atomicObject;
আমার বোধগম্যতা থেকে আপনি একাধিক থ্রেড থেকে অ্যাটমিক হিসাবে নিরাপদে সংজ্ঞায়িত বৈশিষ্ট্যগুলি নিরাপদে পড়তে বা লিখতে পারেন, একই সময়ে একাধিক থ্রেড থেকে ননোটমিক বৈশিষ্ট্য বা আইভারগুলি অ্যাক্সেস করার সময় খারাপ অ্যাক্সেস ত্রুটি সহ অনির্ধারিত আচরণের ফলাফল হতে পারে।
সুতরাং আপনার যদি সুইফটে এর মত চলক থাকে:
var object: NSObject
আমি কি নিরাপদে নিরাপদে সমান্তরালে এই পরিবর্তনশীলটি লিখতে এবং লিখতে পারি? (এটি করার আসল অর্থ বিবেচনা না করে)।
atomicসাধারণত একটি সম্পত্তি সহ থ্রেড-নিরাপদ মিথষ্ক্রিয়া জন্য যথেষ্ট বিবেচনা করা হয় না, সহজ ধরনের তথ্য ছাড়া। অবজেক্টের জন্য, কেউ সাধারণত লকগুলি (যেমন, NSLockবা @synchronized) বা জিসিডি সারিগুলি (যেমন, সিরিয়াল সারি বা "পাঠক-লেখক" প্যাটার্ন সহ সমবর্তী সারি) ব্যবহার করে থ্রেডগুলিতে অ্যাক্সেসকে সিঙ্ক্রোনাইজ করে ।
atomicবস্তুর থ্রেড-সুরক্ষা নিশ্চিত করে না; এবং (খ) থ্রেড-সুরক্ষা (অন্য বিষয়গুলির মধ্যে একই সাথে পড়া / লেখাগুলি প্রতিরোধ করা) নিশ্চিত করার জন্য যদি কেউ পূর্বোক্ত সিঙ্ক্রোনাইজেশন কৌশলগুলির সঠিকভাবে ব্যবহার করে তবে পারমাণবিক সমস্যাটি মোটা। তবে আমাদের এখনও সাধারণ ডেটা ধরণের জন্য এটি প্রয়োজন / চাই, যেখানে atomicসত্যিকারের মান আছে। ভাল প্রশ্ন!

@atomicবা@nonatomic। বা ডিফল্টরূপে কেবল পারমাণবিক। (সুইফট এত অসম্পূর্ণ, আমরা এখন অনেক কিছুই বলতে পারি না)