Comment by bayindirh

4 days ago

Threads share the same memory by definition, though. When you isolate these threads from a memory PoV, they become processes.

Moreover, threads are arguably useless without shared memory anyway. A thread is invoked to work on the same data structure with multiple "affectors". Coordination of these affectors is up to you. Atomics, locks, queues... The tools are many.

In fact, processes are just threads which are isolated from each other, and this isolation is enforced by the processor.

Goroutines aren't posix threads. They could've lacked shared memory by default, which could be enforced by a combination of the compiler and runtime like with Erlang.