News for hackers. Stuff that matters.
Re:Is Parallel Programming Hard, and, If So, What Can You Do... by dragontamer on Wednesday February 22, 2023 @10:50AM (#34897459)
> I mean, if you prefer subprocesses, that's fine, but don't sell them as some kind of silver bullet.

I've listed 5 different multithreaded techniques at the beginning of this discussion.

1. Processes 2. Mutexes 3. Condition Variables 4. Seq-Cst Atomics 5. Atomics + Memory Barriers

If you've thought I'm listing silver bullets, you're mistaken severely. I'm pointing out that #1 is easier than #2. And #2 is easier than #3, and #3 tends to be easier than #4. Prefer easier solutions over complex solutions.

That's all I'm trying to point out. Of course there's no silver bullets. But there are "preferred" solutions. Generally speaking, easier solutions vs harder solutions.

---------

Processes are easier because they're (partially) isolated. In contrast, threads have no isolation. Heck, one can argue that VMs and Docker are also responses to this isolation issue.

If you're unable to see why that's easier, I dunno how else to explain it. I've given it a bunch of posts.

Re:Is Parallel Programming Hard, and, If So, What Can You Do... by spacechild1 on Wednesday February 22, 2023 @03:01PM (#34901772)
> I've listed 5 different multithreaded techniques at the beginning of this discussion.

Unsurprisingly, I have a problem with that list as well. It mixes things that belong to different categories. A process is an execution context while the rest are synchronization mechanisms. For example, it is possible to synchronize two processes with atomic variables (in shared memory). Also, the list misses any kind of higher level threading primitive (concurrent queues, channels, futures, etc.). There is a whole world above explicit mutex locking.

> I'm pointing out that #1 is easier than #2.

I totally believe you when you say that subprocesses are the preferred solution for your particular use cases. It just does not make sense as general advice. It's nice that they are isolated, but you cannot just downplay all the downsides.