3 ms·
I think that's not their point. What they advocate is based on Tony Hoare's CSP model. When you introduce locks and share data, your program suddenly becomes ex
by Aegean 16y ago
I think that's not their point. What they advocate is based on Tony Hoare's CSP model. When you introduce locks and share data, your program suddenly becomes extremely complex to validate. Yes if you are skilled enough, you can lock things and it works (most operating systems would only rarely crash due to locking) but what this brings is true determinism.
The programs become provably stable and deterministic. Furthermore, the determinism can scale. E.g. If you achieve a safely validated program with 10 threads, you can consider that as a single block and replicate and connect it to thousands more, and yet your system remains safe from concurrency bugs.
The downside is that its overkill to separate the program into multiple threads just to make sure you don't have shared data.
But it has its merits, imagine you are developing a mission critical system. Its a powerful thing to claim you have a fully deterministic concurrent system with hundreds of communicating threads in it. Also note that cpus will multiply soon to 64, 128 ... cores, so might as well use some of them for something like this.