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