转载

浅谈 Linux 上的 Swift 并发性

从一开始,IBM 就已宣布,鉴于我们看到的使用 Swift 构建应用程序和开放 Swift 源代码的好处,我们的重点会放在将 Swift 引入服务器上。为了做到这一点,我们的 Swift.org 已将精力集中在“并发性”上。启用并发性是服务器端编程的一个重要方面。

为何要使用并发性?从根本上讲,并发性是指允许同时执行多个计算,并确保程序仍能计算出预期的答案。在服务器上,并发性可以通过利用多个 CPU 内核来加速程序,通过允许重叠计算与通信来减少延迟,并支持单个服务器进程处理许多同时操作的用户。

为何是我们?在并发运行时系统中,各种想法就是我们深厚专业知识的体现,Linux 操作系统将会为我们提供支持,使我们不仅能够与 Swift 开源社区开展高效协作,还能帮助我们迅速解决一些技术问题。Chris、Ian 和我都在企业和实验性语言运行时方面有多年的经验。Hubertus 带来了丰富的操作系统和 Linux 内核方面的经验。我们所有人都非常享受共同努力的机会,以及不断发展的 Swift.org 社区。

我们一直都在忙些什么?在 Swift 中,并发性是通过 Grand Central Dispatch 的 API 的使用来表示的,苹果公司的基本库可用于表示 iOS 和 OS X. 中的多核硬件上的并发性。Grand Central Dispatch 提供了一组高级抽象概念,用于根据任务、串行队列、并行队列和同步操作(比如组、信号量和障碍,而不是使用显式的线程模型)来编写并发程序。在 iOS 和 OS X 上,Grand Central Dispatch 与操作系统内核紧密集成,使其能够优化调度和资源管理决策。在将 Grand Central Dispatch 移植到 Linux 的过程中,一个关键的技术问题在弥补 iOS 和 OS X 上提供的操作系统 API 与 Linux 提供的 API 之间的差异。幸运的是,我们能够利用两个现有的开源项目( libkqueue 和 libpwq )来弥补一些关键 API 之间的差异。

在开放 Swift 源代码的两个月内,我们很高兴地看到,将 Grand Central Dispatch 功能性地迁移到 Linux 已达到某种程度的完整性和稳定性,早期的一些采用者(包括 Kitura Web 框架 )已经可以使用它。

下一个目标是什么?目前社区的重点是弥补 Grand Central Dispatch 的 Swift API 的不足之处,并继续优化其在 Linux 上的性能。尤其是,我们正致力于实现特定于线程的存储,以便优化调度操作,分析服务器端工作负载的性能和可伸缩性,从而确定需要进一步增强的领域,并调查在执行服务器工作负载时的资源管理和调度决策。

您是否已经加入 Swift.org 或者只是想开始了解该社区,我们希望在 Swift.org 开发者社区中看到您。(https://swift.org/)

我们希望在 Swift.org 中看到您!Cheers、Chris Bailey、Hubertus Franke、David Grove 和 Ian Partridge。

原文请访问 IBM developerWorks / Developer CentersSwift@IBM。

原文  http://www.ibm.com/developerworks/cn/mobile/zones/talking-about-swift-concurrency-on-linu/index.html?ca=drs-
正文到此结束
Loading...