我创建了一个线程。而且我发现此线程不会执行最后一行代码。
let thread = Thread {
RunLoop.current.add(NSMachPort(), forMode: RunLoopMode.commonModes)
let runloop = CFRunLoopGetCurrent()
print("A")
CFRunLoopRun()
print("B")
}
然后我调用此线程'thread.start()'。但是它只能打印'A'。
答案 0 :(得分:2)
CFRunLoop()
是一个无限期运行的函数,直到停止为止。
这意味着上面的代码基本上是:
print("A")
while true {
// execute run loop
}
print("B")
直到停止运行循环,才能调用最后一行。