165得票6回答
如何在C语言中使用Linux共享内存

我的项目有些问题。 我一直在尝试找到一个关于如何使用 fork() 的共享内存的示例文档,但是一直没有成功。 基本上,场景是这样的:当用户启动程序时,我需要将两个值存储在共享内存中: current_path 是一个char*类型的变量,而 file_name 也是char*类型的变量。 ...

157得票4回答
多进程中的共享内存对象

假设我有一个大的内存numpy数组,我有一个名为 func 的函数,它将这个巨大的数组作为输入(以及一些其他参数)。使用不同参数运行 func 可以并行进行。例如: def func(arr, param): # do stuff to arr, param # build arr...

105得票5回答
多进程中的共享内存

我有三个大列表。第一个包含位数组(模块bitarray 0.8.0),另外两个包含整数数组。l1=[bitarray 1, bitarray 2, ... ,bitarray n] l2=[array 1, array 2, ... , array n] l3=[array 1, array ...

101得票6回答
在多进程之间共享大型、只读的Numpy数组

我有一个60GB的SciPy数组(矩阵),我必须在5个或更多的进程对象之间共享。我看过numpy-sharedmem并阅读了SciPy列表中的此讨论。似乎有两种方法--和使用将NumPy 映射到。现在,似乎是正确的选择,但我还没有看到一个好的参考示例。我不需要任何类型的锁,因为该数组(实际上是...

89得票1回答
在并行处理下,高效地将函数应用于分组的pandas DataFrame

我经常需要对一个非常大的混合数据类型的DataFrame分组应用一个函数,并希望利用多个核心。 我可以从这些分组创建一个迭代器并使用multiprocessing模块,但这样效率不高,因为每个分组和函数的结果都必须进行pickle处理以在进程间传递信息。 是否有任何方法可以避免pickle...

77得票2回答
Linux共享内存:shmget()和mmap()有什么区别?

在这个帖子中,建议OP在Linux中使用mmap()而不是shmget()来获取共享内存。 我参考了这个页面和这个页面的一些文档,但第二个页面给出了一个关于mmap()的不明确的示例。 作为一个几乎是新手,并且需要在两个进程之间共享一些信息(以文本形式),我应该使用shmget()方法还是m...

69得票4回答
将共享内存数组与Pool.map结合使用在Python并发编程中

我有一个非常大的(只读)数据数组,希望能够并行地由多个进程处理。 我喜欢Pool.map函数,并希望使用它来并行计算数据上的函数。 我发现可以使用Value或Array类在进程之间共享内存数据。但是当我尝试使用这些类时,在使用Pool.map函数时会出现RuntimeError:'Synchr...

59得票10回答
消息传递和共享内存并发模型有什么区别?

如果我说错了,请纠正我,但是我很惊讶这个问题在这里之前竟然没有被问过...

46得票1回答
何时使用管道,何时使用共享内存?(这是一个提问标题,无需回答)

我正在阅读有关各种IPC机制的资料。我试图找出使用共享内存和命名管道(FIFO)的场景。 管道: 多个进程可以写入,但只有一个进程可以读取。写操作是原子的。 共享内存: 多个进程可以读写。用户需要为读写提供互斥。 这是使用共享内存和管道的唯一区别吗?

45得票3回答
在std::shared_ptr上使用.reset()会删除所有实例吗?

我对shared_ptr还不熟悉,正在尝试弄清楚.reset()函数的确切功能。#include <memory> #include <stdio> using namespace std; class SomeClass{}; int main() { s...