4 ms·
This made me think. I can't actually agree that it's a matter of language primitives. It's very much about the logical complexity of sharing anything. It seems
by Demiurge 11y ago
This made me think. I can't actually agree that it's a matter of language primitives. It's very much about the logical complexity of sharing anything. It seems to be a fundamental, recurring theme in CS, data and logic. In a single thread, in imperative language, there is a sequential list of logical steps and manipulation of data, or state. With two or more threads, you have multiple sequence of statements, but they can try to manipulate same data, it's effectively mashing two sequences together in random order! If that is what you want to do, I don't see anything you can really do to make it not rocket science. I'm sure it can be made easier by using some safer primitives for data access, but I don't see how the high level logical races can be made eliminated. As in, a language can eliminate an object being deleted when it's going to be still accessed, but it can't eliminate a student getting an F at midnight while his homework program is still being tested.