对象池

Swift Build Status Code Coverage

一个通用的 Swift 对象池实现,可在 macOS 和 Linux 上运行。

🏁 入门指南

使用 Swift Package Manager 将 Pool 导入到你的项目中

import PackageDescription

let package = Package(
    name: "YourProject",
    products: [
      .executable(name: "YourProject", targets: ["YourProject"])
    ],
    dependencies: [
        .package(url: "https://github.com/reswifq/pool.git", .upToNextMajor(from: "1.3.0"))
    ],
    targets: [
      .target(name: "YourProject", dependencies: ["Pool"])
    ]
)

创建一个元素对象池

let pool = Pool(maxElementCount: 10) {
	return "I am a pool element"
}

从对象池中取出一个元素

let element = try pool.draw()

用这个元素做一些事情

print(element) // "I am a pool element"

把它放回对象池,以便它可以被重用

pool.release(element)

可以选择等待直到它被释放

pool.release(element) {
	print("element has been released and it's ready to be drawn again")
}

🔧 兼容性

此软件包已在 macOS 和 Ubuntu 上进行了测试。

📖 许可证

Valerio Mazzeo 创建。

版权所有 © 2017 VMLabs Limited。保留所有权利。

本程序是自由软件:您可以重新发布和/或根据自由软件基金会发布的 GNU Lesser General Public License 条款修改它,无论是许可证的第 3 版,还是(由您选择)任何后续版本。

本程序的发布是为了希望它是有用的,但不提供任何担保;甚至没有对适销性或针对特定用途的适用性的暗示担保。

有关更多详细信息,请参阅 GNU Lesser General Public License