DevPrep

Все темы › Задачи с реальных собеседований

Reader-writer на barrier: четыре вопроса интервьюера

Senior PRO

Задача

Кандидат написал потокобезопасное хранилище. Что спросит интервьюер дальше?

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

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store