是否可以在用户进程之间共享内存而不会像线程那样造成延迟损失

时间:2019-04-03 14:16:06

标签: c linux multithreading assembly shared-memory

我编写了一个代码,使用全局变量将64位值从编写器线程传递到读取器线程。 (为简单起见,未提及任何锁定)

uint64_t g_x;

writer_thread()
{
    g_x = new_value;
}

reader_thread()
{
    uint64_t curr_value;
    curr_value = g_x;
}

现在,我想将写入器线程和读取器线程分成不同的进程,而不会产生额外的延迟,系统调用等吗?

如何在Linux中执行此操作?可能吗?如何将g_x变量放入两个进程的地址空间?

如果我使用shmget / shmat,mmap(或其他),可以达到相同的性能吗?

谢谢。

0 个答案:

没有答案