Проблема с потоками во 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)
    }
  }
}

Ответы (0 шт):