3 ms·
> I don't think that's a valid generalization at all. Especially given he was complaining about syscall costs . . . which are nonexistent with futexes . . .
by jamesaguilar 14y ago
> I don't think that's a valid generalization at all.
Especially given he was complaining about syscall costs . . . which are nonexistent with futexes . . .
- robertgraham 14y agoThey are NOT non-existent, they happen a lot in contention. That's why code fails to scale: as you add CPUs, contentions happen a lot more often, and the number of syscalls shoot through the roof.
- jamesaguilar 14y agoBut the cost is not the syscalls . . . it's all those threads getting stopped, swapping memory in and out of the cache, etc. The syscall cost is minor by comparison. At any rate, you've definitely overstated the case against mutexes in this post. At most, the advice should have been "avoid designs that will suffer from a lot of contention" like locking with lots of shared mutable state. It really has nothing to do with threads-vs-processes as you've made it out to do.