Aké metódy synchronizácie sa používajú na zabezpečenie spoločného prístupu k premennej pri čítaní a zápise?
sobes.tech AI
Odpoveď od AI
Za zagotavljanje varnega skupnega dostopa do spremenljivke med branjem in pisanjem na iOS se pogosto uporabljajo naslednje metode sinhronizacije:
-
Dispatch Queue (GCD): zaporedne vrste (
DispatchQueue) omogočajo izvajanje operacij zaporedno, s čimer preprečujejo tekmovalne pogoje. Na primer, lahko uporabiteDispatchQueue.syncaliDispatchQueue.asyncz zaporedno vrsto. -
NSLock in drugi objekti za zaklepanje:
NSLock,NSRecursiveLock,NSConditionomogočajo eksplicitno zaklepanje dostopa do vira. -
@synchronized (v Objective-C): sintaktična konstrukcija za zaklepanje kode.
-
Atomarne lastnosti: v Objective-C je mogoče deklarirati lastnosti kot
atomic, vendar to ni vedno dovolj za kompleksne operacije. -
Zaklepanje bralca- pisca: na primer,
pthread_rwlock_tza razdelitev dostopa na branje in pisanje.
Primer z uporabo DispatchQueue za sinhronizacijo dostopa do spremenljivke:
class ThreadSafeCounter {
private var value = 0
private let queue = DispatchQueue(label: "com.example.counterQueue")
func increment() {
queue.sync {
value += 1
}
}
func getValue() -> Int {
return queue.sync { value }
}
}