嘿,我编写了一个多线程程序,该程序在线程之间共享内存,是否有某种方法可以通过使用共享内存而不是malloc的常规内存来使其效率更高?
另外,如果有办法可以改进此程序,请在github此处列出。
另外,是的,我知道内存泄漏很猖,,这会影响程序的速度吗?
共享内存通常是指不同进程之间共享的内存,需要特殊的OS调用来设置和使用:shm_open
用于POSIX共享内存,shmget
用于SysV共享内存或mmap
带有MAP_SHARED
标志。
同一进程中的线程可以简单地访问进程的内存(您从中获得的内存malloc
)。
由于共享内存具有普通多线程程序不需要的开销,因此在单进程程序中使用共享内存不会带来任何好处。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句