ios - সম্পত্তি "Nonatomic" মানে কি?




objective-c iphone (6)

অনেকগুলি নিবন্ধ এবং স্ট্যাক ওভারফ্লো পোস্ট পড়ার পরে এবং ভেরিয়েবল সম্পত্তি বৈশিষ্ট্যগুলি পরীক্ষা করার জন্য ডেমো অ্যাপ্লিকেশনগুলি তৈরি করার পরে, আমি সমস্ত গুণাবলী তথ্য একসঙ্গে রাখার সিদ্ধান্ত নিয়েছি

  1. পারমাণবিক // ডিফল্ট
  2. nonatomic
  3. শক্তিশালী = ডিফল্ট রাখা
  4. দুর্বল = unsafe_unretained
  5. রাখা
  6. বরাদ্দ // ডিফল্ট
  7. unsafe_unretained
  8. কপি
  9. শুধুমাত্র পাঠযোগ্য
  10. readwrite // ডিফল্ট

তাই নিচের বিস্তারিত নিবন্ধ লিঙ্কটি যেখানে আপনি উপরে উল্লেখিত সমস্ত গুণাবলী খুঁজে পেতে পারেন, এটি অবশ্যই আপনাকে সাহায্য করবে। এখানে যারা সবচেয়ে উত্তম উত্তর দেয় তাদের সবাইকে ধন্যবাদ!

আইওএস ভেরিয়েবল সম্পত্তি বৈশিষ্ট্য বা Modifiers

  1. পারমাণবিক
    • পারমাণবিক মানে শুধুমাত্র একটি থ্রেড পরিবর্তনশীল (স্ট্যাটিক টাইপ) অ্যাক্সেস।
    • পরমাণু থ্রেড নিরাপদ।
    • কিন্তু এটি কর্মক্ষমতা ধীর।
    • পারমাণবিক ডিফল্ট আচরণ।
    • কোনও আবর্জনা সংগৃহীত পরিবেশে পারমাণবিক অ্যাক্সেসারগুলি (অর্থাত সংরক্ষণ / মুক্ত / অটোরলিজ ব্যবহার করে) লকটি ব্যবহার করে নিশ্চিত করবে যে অন্য থ্রেড সঠিক সেটিং / মানটির সাথে হস্তক্ষেপ করবে না।
    • এটা আসলে একটি শব্দ নয়।

উদাহরণ:

@property (retain) NSString *name;

@synthesize name;
  1. nonatomic
    • Nonatomic মানে একাধিক থ্রেড পরিবর্তনশীল (গতিশীল টাইপ) অ্যাক্সেস।
    • Nonatomic থ্রেড অনিরাপদ।
    • কিন্তু এটি কর্মক্ষমতা দ্রুত।
    • Nonatomic ডিফল্ট আচরণ নয়; আমরা সম্পত্তি গুণাবলী মধ্যে nonatomic শব্দ যোগ করার প্রয়োজন।
    • এটি অপ্রত্যাশিত আচরণ হতে পারে, যখন দুটি ভিন্ন প্রক্রিয়া (থ্রেড) একই সময়ে একই পরিবর্তনশীল অ্যাক্সেস করে।

উদাহরণ:

@property (nonatomic, retain) NSString *name;

@synthesize name;

এই কোডে "nonatomic" মানে কি?

@property(nonatomic, retain) UITextField *theUsersName;

পারমাণবিক এবং nonatomic মধ্যে পার্থক্য কি?

ধন্যবাদ



এক মাল্টি থ্রেড জন্য। এক হয় না


একটি মাল্টি-থ্রেডেড প্রোগ্রামে, একটি পারমাণবিক অপারেশনটি আংশিকভাবে বাধাগ্রস্ত হতে পারে না, যেখানে ননটোমিক অপারেশন করতে পারে।

অতএব, যদি আপনার কোনও জটিল ক্রিয়াকলাপ না থাকে তবে আপনি mutexes (বা এরকম কিছু) ব্যবহার করতে পারেন যা অটোমোটিমিক হয় যা আপনি বিঘ্নিত করতে চান না।


সাধারণত পরমাণু মানে যে সম্পত্তিতে লিখতে / পড়তে একটি একক ক্রিয়াকলাপ হিসাবে ঘটতে পারে। Atomic_operation


অ্যাপল ডক্স দেখুন

মূলত, যদি আপনি nonatomic বলে থাকেন এবং আপনি @synthesize ব্যবহার করে @synthesize তৈরি করেন তবে একাধিক থ্রেড একবারে সম্পত্তিটি পরিবর্তন / পড়ার চেষ্টা করলে, @synthesize ঘটতে পারে। আপনি আংশিকভাবে লিখিত মানগুলি পেতে পারেন বা অতিরিক্ত মুক্ত / আটকে থাকা বস্তুগুলি, যা সহজেই ক্র্যাশগুলি হতে পারে। (যদিও এটি একটি পারমাণবিক অ্যাক্সেসর চেয়ে অনেক বেশি দ্রুত।)

যদি আপনি ডিফল্ট ব্যবহার করেন (যা atomic ; @synthesize জন্য কোনও শব্দকোষ ব্যবহার করা হয় না, তবে এখন আছে ), তখন @synthesize ডি পদ্ধতিগুলি একটি বস্তুর স্তরের লক ব্যবহার করে যাতে একক সম্পত্তিগুলিতে একাধিক @synthesize হয় তা নিশ্চিত করতে পারে। । অ্যাপল ডক্সগুলি নির্দেশ করে, এর অর্থ এই নয় যে সমগ্র বস্তুটি থ্রেড-নিরাপদ , তবে ব্যক্তিগত সম্পত্তি পড়তে / লিখতে হয়।

অবশ্যই, যদি আপনি @synthesize ব্যবহার করার পরিবর্তে আপনার নিজের অ্যাক্সেসারগুলি বাস্তবায়ন করেন তবে আমি মনে করি এই ঘোষণাটি আপনার উদ্দেশ্যটি প্রকাশ না @synthesize কিছুই করে না যে সম্পত্তিটি একটি থ্রেডসেফ পদ্ধতিতে প্রয়োগ করা হয়েছে কিনা।







properties