Gpseq

Vala 和 GObject 的并行库
授权协议 LGPL
开发语言 Vala
所属分类 程序开发、 并发/并行处理框架
软件类型 开源软件
地区 不详
投 递 者 伊羽
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

 

 相关资料
  • 在讲解并发概念时,总会涉及另外一个概念并行。下面让我们来了解并发和并行之间的区别。 并发(concurrency):把任务在不同的时间点交给处理器进行处理。在同一时间点,任务并不会同时运行。 并行(parallelism):把每一个任务分配给每一个处理器独立完成。在同一时间点,任务一定是同时运行。 并发不是并行。并行是让不同的代码片段同时在不同的物理处理器上执行。并行的关键是同时做很多事情,而并发

  • 问题内容: 本文在这里建议使用“为了使与并发GC并行年轻一代的GC”。 我的困惑是,为了同时启用并行和并发GC,我应该 使用或 同时使用 和 ? 聚苯乙烯 我正在使用JVM 6。 问题答案: 由于链接的文档是针对1.4.2 VM的,因此我假设您正在使用(JVM 5和6的行为有所不同)。 从http://java.sun.com/docs/hotspot/gc1.4.2/ 如果在命令行上使用了-XX

  • 本文向大家介绍在Python中封装GObject模块进行图形化程序编程的教程,包括了在Python中封装GObject模块进行图形化程序编程的教程的使用技巧和注意事项,需要的朋友参考一下 Python 是用于编码图形界面的极佳语言。由于可以迅速地编写工作代码并且不需要费时的编译周期, 所以可以立即使界面启动和运行起来,并且不久便可使用这些界面。 将这一点与 Python 易于链接本机库的能力结合起

  • 在我们的生产服务中,我计划将Cosmos DB SDK从v2(microsoft.azure.documentdb)升级到最新的v3(microsoft.azure.Cosmos)。 null 目前,我们的DocumentClient被设置为在直接模式(TCP协议)下工作,我们希望在相同的模式下使用CosmosClient。

  • 14.1.1 什么是协程 一个应用程序是运行在机器上的一个进程;进程是一个运行在自己内存地址空间里的独立执行体。一个进程由一个或多个操作系统线程组成,这些线程其实是共享同一个内存地址空间的一起工作的执行体。几乎所有'正式'的程序都是多线程的,以便让用户或计算机不必等待,或者能够同时服务多个请求(如 Web 服务器),或增加性能和吞吐量(例如,通过对不同的数据集并行执行代码)。一个并发程序可以在一个

  • 亚马逊EC2上的许多Django应用程序部署使用HTTP服务器NGINX和GUnicorn。 我想知道它们实际上是做什么的,为什么两者并行使用。并行运行它们的目的是什么?

  • 问题内容: 我正在使用RxJava Observable api使用以下代码: 我的期望是观察代码,即subscribe()方法中的代码,在我指定了计算调度程序后将并行执行。相反,代码仍在单线程上按顺序执行。如何使用RxJava api使代码并行运行。 问题答案: RxJava在异步/多线程方面经常被误解。多线程操作的编码很简单,但是了解抽象是另一回事。 关于RxJava的一个常见问题是如何实现并