Multithreading Swift是否有任何本机并发和多线程支持?

Multithreading Swift是否有任何本机并发和多线程支持?,multithreading,swift,concurrency,native,Multithreading,Swift,Concurrency,Native,我正在编写一个Swift客户端,用于与嵌入式系统上的服务器(用C编写)通信。它与iOS/OSX无关,因为我使用的是最近发布的Ubuntu版本 Swift对并发性有任何本机支持吗?我知道苹果不鼓励开发人员使用线程,并鼓励通过GCD将任务交给调度队列。问题在于GCD似乎只在Darwin上(而NSThread是Cocoa的一部分) 例如,C++11和Java将线程和并发性作为其标准库的一部分。我知道unix上的posix等特定于平台的东西可以在某种C包装器下使用,但对我来说,这实际上破坏了使用Swif

我正在编写一个Swift客户端,用于与嵌入式系统上的服务器(用C编写)通信。它与iOS/OSX无关,因为我使用的是最近发布的Ubuntu版本

Swift对并发性有任何本机支持吗?我知道苹果不鼓励开发人员使用线程,并鼓励通过GCD将任务交给调度队列。问题在于GCD似乎只在Darwin上(而NSThread是Cocoa的一部分)

例如,C++11和Java将线程和并发性作为其标准库的一部分。我知道unix上的posix等特定于平台的东西可以在某种C包装器下使用,但对我来说,这实际上破坏了使用Swift的初衷(干净、易于理解的代码等)。

2021年来了。。。 从Swift 5.5开始,比如异步/等待编程模型和参与者

现在仍然没有线程的直接操作,这是(到今天为止)一种设计选择

如果您以前编写过并发代码,您可能会习惯于使用线程。Swift中的并发模型是建立在线程之上的,但您不直接与线程交互。Swift中的异步函数可以放弃它正在运行的线程,这样,当第一个函数被阻塞时,另一个异步函数可以在该线程上运行

2015年原始答案 引用《进化论》的自述:

<强>并发< /强>:SWIFT 3完全依赖于并发并发的平台并发原语(LIbDebug、Frand、PcLoad等)。对并发性的语言支持是一个经常被要求的、可能具有高价值的功能,但它太大,不适合Swift 3.0


我想这意味着在可预见的未来,没有语言级别的线程“原语”在准备中。

试着看看Ubuntu的libdispatch。GCD是一个非常好的概念,易于使用。GDC()的官方端口在Ubuntu上还不起作用。这是Ubuntu的人设计的端口吗?有道理。我想,苹果正在积极构建一个Linux版本的GDC作为其开源的一部分,这是一种安慰。尽管如此,看到Scala(以及Java和Python)如何处理类似于
的未来结构(以及组合…等等),看到语言设计师从这些语言中借用功能的品味,我们可以看到扩展Swift的价值,而不仅仅是“仅仅”移植GCD。是的,绝对如此。从Ruby和Scala等语言到一种类型安全的、基于C的语言,函数式编程结构的加入在很大程度上构成了Swift对我(以及其他人)的吸引力。