我正在编写一个Swift客户端来与嵌入式系统上的服务器(用C编写)进行通信.它不是iOS/OSX相关,因为我使用的是最近发布的Ubuntu版本.
Swift是否对并发有任何原生支持?我知道Apple不鼓励开发人员使用线程,并鼓励将任务交给通过GCD调度队列.问题是GCD似乎只在达尔文上(而NSThread是Cocoa的一部分).
例如,C++ 11和Java将线程和并发作为其标准库的一部分.我知道像unix上的posix这样的平台特定的东西可以在某种C包装下使用,但对我来说,这真的破坏了使用Swift的重点(干净,易于理解的代码等).
引自Swift的GitHub,有一个自述"演变"的自述文件:
并发:Swift 3.0完全依赖于并发的平台并发原语(libdispatch,Foundation,pthreads等).对并发性的语言支持是一种经常被请求且可能具有高价值的特性,但是它太大而不适合Swift 3.0.
我想这意味着在可预见的未来,没有用于线程的语言级"原语".