ThreadlySwift类型安全的线程本地存储
Swift 的类型安全线程本地存储用起来还挺顺手的。ThreadlySwift这个库专门线程局部变量这块,代码简洁,逻辑清晰,蛮适合多线程场景。你可以把值绑定到当前线程上,其他线程完全看不到,数据隔离做得挺到位的。
类型安全的设计比较贴合 Swift 的语言特性,不用担心类型乱飞出 Bug。比如你想在线程里保存个String
值,它就会强制保证只有String
类型能进来,读的时候也不用做额外的转换,省心。
API 也比较直观,没有太多花活。你只需要用ThreadLocal
来定义一个变量,写、读都顺,生命周期也自动跟线程走,线程一结束,存的东西也清干净,避免内存泄漏那种麻烦事。
比如下面这段:
ThreadLocal.init { return "Default Value" }
ThreadLocal.current = "Thread Specific Value"
let currentValue = ThreadLocal.current
是不是蛮清爽?你也可以用它在DispatchQueue
里存东西,做异步任务的上下文传递,还挺好用的。适合那种你不想用global
变量又需要跨函数共享状态的场景。
如果你平时要跟线程、并发打交道,ThreadlySwift 确实是个值得收进工具箱的好物。
25.2KB
文件大小:
评论区