1
Concurrency / Threading
1. Каким будет итоговое значение count? Объясните проблемы параллельности и то, как NSLock влияет на результат.
import Foundation
var count = 0
let lock = NSLock()
let thread1 = Thread { for _ in 0...199 {
lock.lock()
count += 1
lock.unlock()
}
}
let thread2 = Thread { for _ in 0...199 { count += 1 } }
thread1.start()
thread2.start()2
UI Lifecycle / Grand Central Dispatch (GCD)
2. Каким будет порядок вывода операторов print? Объясните почему.
class MyViewController: UIViewController {
override func…