Reader-writer на barrier: четыре вопроса интервьюера
Задача
Кандидат написал потокобезопасное хранилище. Что спросит интервьюер дальше?
final class ThreadSafeStore<Key: Hashable, Value> {
private var storage: [Key: Value] = [:]
private let queue = DispatchQueue(label: "store.queue", attributes: .concurrent)
func get(_ key: Key) -> Value? {
queue.sync { storage[key] }
}
func set(_ value: Value?, for key: Key) {
queue.async(flags: .barrier) {
self.storage[key] = value
}
}
}
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep