如何在 Swift 命令行程序执行异步代码
最近在学习多线程底层源码, 为了方便验证各种多线程案例, 我是直接在一个 main.swift
文件中编写异步代码, 然后终端中使用 swift main.swift
命令来执行看输出的. 然后就遇到了一个很基础的问题: 命令行程序不像 iOS 或 macOS 应用, 默认是没有 runloop 的, 这就代表提交到主线程的同步代码执行完成后整个程序就退出了, 我们添加到其他线程的或者在主线程异步执行的代码就没有机会被执行了.
这个问题解决不了的话就无法使用终端程序验证多线程代码了, 经过一番学习, 发现是有多种方式能使终端程序不退出执行的, 这篇文章将我谈索道的这些方式做一下总结