5 ms·
The programmer is still allowed to specify operations to perform as well as restrictions on the order in which the operations are performed. Not fully specifyin
by dhume 16y ago
The programmer is still allowed to specify operations to perform as well as restrictions on the order in which the operations are performed. Not fully specifying what to do just gives the computer more options to pick from -- it will still pick one of those options.
- AgentConundrum 16y agoit will still pick one of those options which is the part that gets rid of the "does what you tell it" bit, since now it's doing what it thinks it should, which might not be very consistent or easily determinable because minor variations during a race can produce wildly differing results.
- dhume 16y agoIf I tell someone, "bring me a sandwich or a bowl of chili," and the person brings me a bowl of chili, that person has done exactly what I told them to do.
- regularfry 16y agoWhat if they get bored waiting at the counter in the cafe and come back empty-handed? 'Cos that's what can happen as soon as IO is allowed into the picture; particularly so with network IO.
- deleted 16y ago[deleted]
- sambe 16y agoIn that case you probably said "get me a bowl of chili if you can get served in a minute, otherwise don't bother". Or at least it was implicit.
- regularfry 16y agoThe problem is that combining this with multithreading makes for a combinatorial explosion of possible states that you might have to deal with. It's just not feasible to exhaustively specify everything., and leaving things implicit means that you're expecting the computer to do things you haven't told it to do.
- sambe 16y agoSure, there is complexity. It's easy to make assumptions or forget real-world details too. But you DID tell it to time-out, because that's how the I/O library is specified.
- regularfry 16y agoThe more pernicious problem is when they don't come back at all, having deadlocked.