我最初的设计是使每个逻辑部分成为一个独立的程序,并在不同的核心上运行它们,通过文件传递信息,映射共享内存。但是,在知道来自同一个进程的甚至两个线程都可以在单独的核心中运行之后,我想将这两个程序合并成一个进程,每个进程都运行在一个与独立内核绑定的线程上。而且,由于进程中的所有线程共享内存空间,我可以消除共享内存,直接使用程序内存空间,这样会更快。
我的推理正确吗?如果正确,那么将应用程序分离为 process 而不是在
由于文件的大小可能很大(100 in ~),为了减少多个进程中的内存使用量,我想我需要使用共享内存。我读了一个Linux文件,他们说,
虽然虚拟内存允许进程具有独立(虚拟)地址空间,但有时需要进程来共享内存。例如,系统中可能有几个进程运行bash命令shell。共享内存也可以用作进程间通信(IPC)机制,两个或多个进程通过所有进程共有的内存交换信息
我一直都知道,共享内存是在两个线程之间共享数据的最快方法(比如)。然而,今天我发现,使用boost::ref(X)可以向boost提供一个对X的引用,以支持从线程外部访问X。MyObject has a () operatorX.setSomeMember(1);
这让我想到:假设setSomeMember是线程安全的,那么--对于大多数应用程序--这种方法似乎要容易得多,因为大多数应用程序根据需要生成它们的线