Проблема с потоками во ViewController
Создаю два потока через классы (наследники Thread).Во viewDidLoad создаю экземпляры двух классов.И они должны одновременно работать : один делает строку пустой ,а второй добавляет букву.Проблема в том ,что у меня работает только один поток: это видно в консоли. Запускал программу в playGround - все работало
var availadle = false
var condition = pthread_cond_t()
var mutex = pthread_mutex_t()
var text = ""
class ViewController: UIViewController {
override func viewDidLoad() {
let conditionMutexWriter = ConditionMutexWriter()
let conditionPrinter = CondidtionMutexPrinter()
conditionPrinter.start()
conditionMutexWriter.start()
}
}
class ConditionMutexWriter: Thread {
override init() {
pthread_cond_init(&condition, nil)
pthread_mutex_init(&mutex, nil)
}
override func main() {
writerMethod()
}
private func writerMethod() {
for i in 1...5 {
pthread_mutex_lock(&mutex)
availadle = true
text += "k"
print(text)
print("will signal")
pthread_cond_signal(&condition)
pthread_mutex_unlock(&mutex)
}
}
}
class CondidtionMutexPrinter: Thread {
override init() {
pthread_cond_init(&condition, nil)
pthread_mutex_init(&mutex, nil)
}
override func main() {
printerMethod()
}
private func printerMethod() {
for i in 1...5 {
pthread_mutex_lock(&mutex)
while (!availadle) {
print("stop")
pthread_cond_wait(&condition, &mutex)
}
text = ""
availadle = false
pthread_mutex_unlock(&mutex)
}
}
}