Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在多线程程序中共享内存是否有优势?_C_Multithreading_Posix_Shared Memory - Fatal编程技术网

C 在多线程程序中共享内存是否有优势?

C 在多线程程序中共享内存是否有优势?,c,multithreading,posix,shared-memory,C,Multithreading,Posix,Shared Memory,嘿,我有一个我写的多线程程序,它在线程之间共享内存,有没有办法通过使用共享内存而不是malloc的常规内存来提高效率 此外,如果我有办法改进这个程序,它会列在github上 另外,是的,我知道内存泄漏很严重,这些会影响程序的速度吗 共享内存通常是指不同进程之间共享的内存,需要特殊的操作系统调用来设置和使用:shm_open用于POSIX共享内存,shmget用于SysV共享内存或mmap带有MAP_Shared标志 同一进程中的线程只需访问进程的内存(从malloc获取的内存) 由于共享内存的开

嘿,我有一个我写的多线程程序,它在线程之间共享内存,有没有办法通过使用共享内存而不是malloc的常规内存来提高效率

此外,如果我有办法改进这个程序,它会列在github上

另外,是的,我知道内存泄漏很严重,这些会影响程序的速度吗

共享内存通常是指不同进程之间共享的内存,需要特殊的操作系统调用来设置和使用:
shm_open
用于POSIX共享内存,
shmget
用于SysV共享内存或
mmap
带有
MAP_Shared
标志

同一进程中的线程只需访问进程的内存(从
malloc
获取的内存)

由于共享内存的开销对于普通多线程程序来说是不必要的,因此在单个进程程序中使用它不会带来任何好处。

共享内存通常指不同进程之间共享的内存,需要特殊的操作系统调用来设置和使用:
shm_open
对于POSIX共享内存,
shmget
用于SysV共享内存或带有
MAP\u shared
标志的
mmap

同一进程中的线程只需访问进程的内存(从
malloc
获取的内存)


由于共享内存的开销对于普通的多线程程序来说是不必要的,因此在单个进程程序中使用它不会带来任何好处。

这个问题基于一个误解,但我认为它不值得所有的否决票和接近票。这仍然是一个有效的问题,一个解释误解并纠正误解的答案是恰当的。这个问题基于误解,但我认为它不值得所有的反对票和接近票。这仍然是一个有效的问题和一个解释误解和纠正误解的答案。谢谢!我就是这么说的,谢谢你!我就是这么说的。