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