12 мая 2014 г.

Shared memory с помощью mmap

Оказывается, можно использовать mmap() для создания общей памяти между процессами. А если процессы порождаются с помощью fork(), то в mmap() можно передавать -1 в качестве дескриптора:
import mmap
shmem = mmap.mmap(-1, size, mmap.MAP_ANONYMOUS|mmap.MAP_SHARED,
                  mmap.PROT_READ|mmap.PROT_WRITE)

2 комментария:

Andrew Svetlov комментирует...

multiprocessing так и поступает, нет?

Unknown комментирует...

Действительно, multiprocessing так и делает (модуль heap). Спасибо, не знал.