在c++和Fortran的线程间传输数据

Transfering data between threads in C++ and Fortran

本文关键字:传输 数据 线程 c++ Fortran      更新时间:2023-10-16

我需要在多个c++线程和fortran线程之间移动大量(~10^6个浮点数)。目前,我们使用windows共享内存来移动非常小的数据块,主要用于通信,然后将文件保存为专有格式来移动数据。我曾被要求研究通过共享内存移动大量数据,但看看windows中的共享内存技术(似乎是字符缓冲区),这看起来很混乱。另一种可能性是boost的进程间通信,但不确定如何从fortran中使用它,或者它是否是个好主意。另一个想法是使用像sqlite这样的数据库。

我只是想知道是否有人有任何经验或愿意评论,因为这对我来说有点难。

非常感谢吉姆

使用管道。如果您可以在进程之间继承句柄,则可以使用匿名管道,如果不能,则必须使用命名管道。而且,线程共享地址空间,所以当您说线程时,您可能想到的是进程。