Python Shared Memory Multiprocessing — ELI5

Imagine a group of students working on a project together, but they’re each in separate rooms. They need to share information. One way is to write notes, walk to another room, hand the note over, and walk back. That works, but it’s slow — especially when there’s a lot of data.

A better way: put a big whiteboard in the hallway where everyone can see it. Any student can walk up, read what’s there, and write new information. No note-passing required.

In Python, when you use multiprocessing to run code on multiple CPU cores, each process is like a student in a separate room. They have their own private memory and can’t see what the others are doing.

Normally, to share data between processes, Python has to copy it — like writing a note, handing it over, and letting the other process make its own copy. For small amounts of data, that’s fine. But what if you need to share a huge spreadsheet with millions of rows? Copying that back and forth wastes time and memory.

Shared memory is the whiteboard. Python can create a chunk of memory that all processes can access directly. No copying needed. One process writes data there, and other processes can read it immediately — they’re all looking at the same memory.

This is especially useful for scientific computing and data analysis, where you might have enormous arrays of numbers that multiple processes need to read while doing calculations in parallel.

The one thing to remember: Shared memory lets multiple Python processes access the same data directly without copying — like a shared whiteboard instead of passing notes between separate rooms.

pythonperformancemultiprocessingconcurrency

See Also