Junior — Middle
მოქმედი მონაცემთა სტრუქტურები უზრუნველყოფს უსაფრთხოებას პარალელური ნაკადების დროს?
sobes.tech AI
პასუხი AI-სგან
iOS-এ মানক ডেটা গঠনগুলি, যেমন অ্যারে (Array), ডিকশনারি (Dictionary) এবং সেট (Set), থ্রেড-সুরক্ষিত নয়। এর মানে হল, একাধিক থ্রেড থেকে একসাথে অ্যাক্সেস করার সময় সিঙ্ক্রোনাইজেশন ছাড়া ডেটা রেস কন্ডিশন এবং অপ্রত্যাশিত আচরণ ঘটতে পারে।
সুরক্ষা নিশ্চিত করতে, ব্যবহার করা হয়:
DispatchQueueএর সঠিক সিঙ্ক্রোনাইজেশন নীতি সহ সারিবদ্ধ কিউ (উদাহরণস্বরূপ, লেখার জন্য ধারাবাহিক কিউ)।NSLock,NSRecursiveLockএবং অন্যান্য লকিং মেকানিজমের ক্লাস।- উচ্চ স্তরের নির্মাণ, যেমন
DispatchSemaphoreবাOperationQueue।
একটি অ্যারে অ্যাক্সেসের সুরক্ষার জন্য ধারাবাহিক কিউ ব্যবহারের উদাহরণ:
let queue = DispatchQueue(label: "com.example.arrayQueue")
var array: [Int] = []
func appendElement(_ element: Int) {
queue.sync {
array.append(element)
}
}
অতএব, নিরাপত্তা ডেটা গঠনের নিজস্ব থেকে নয়, বাইরের সিঙ্ক্রোনাইজেশনের মাধ্যমে অর্জিত হয়।