3 ms·
Threads do scale. On Linux, O(1) scheduler solved this non-issue a long time ago.
by xroche 9y ago
Threads do scale. On Linux, O(1) scheduler solved this non-issue a long time ago.
- signa11 9y ago> Threads do scale. On Linux, O(1) scheduler solved this non-issue a long time ago. yup they do. till you start making sure that your code doesn't end up with deadlock, data-corruption, races, performance issues due to lock-contention etc. etc. designing efficient locking schemes is notoriously hard alternating between: - too coarse grained : resulting in serializing activities which could have (should have) proceeded in parallel, thereby sacrificing performance and scalability. or - too fine grained: with space+time for lock operations sapping performance, error recovery and not to mention understanding etc. etc. In the former we have the dragons of deadlock and livelock roaming freely, and in the latter we have race conditions. Somewhere in between is a razor's edge which is both efficient and correct. Almost always, things start with ‘one big lock around everything’ and the vague hope that performance might not be abysmal. When that is dashed, big lock gets broken up, and the prayer is repeated. Each iteration increasing complexity and decreasing lock-contention, and hopefully with some luck, modest performance gain as well. remember this: What do we want ? Now ! When do we want it ? Fewer race conditions ! have fun :)
- throwme211345 9y agoI see your design is lacking and your fud quotient is high. Good on you!
- cheez 9y agoYep. This was my reaction as well. Threads are fine.
- morecoffee 9y agoHaving high numbers threads and switching between threads are different things. There is still a huge constant in front of that O(1) scheduler that makes it unattractive.
- staticassertion 9y agoSpin up 100k threads on linux vs 100k actors in erlang.