Gpseq 是 Vala 和 GObject 的并行库,提供如下特性:
Work-stealing 和管理阻塞任务调度:与 Go 调度程序类似的行为
具有并行执行支持的用于数据处理的函数式编程:相当于 Java 的流
Fork-join 并行
并行排序
Futures 与 promises
64 位原子操作
有符号整数的溢出安全算术函数
案例代码
using Gpseq; void main () { string[] array = {"dog", "cat", "pig", "boar", "bear"}; Seq.of_array<string>(array) .parallel() .filter(g => g.length == 3) .map<string>(g => g.up()) .foreach(g => print("%s\n", g)) .wait(); } // (possibly unordered) output: // DOG // CAT // PIG