Chris Uppal coughed up:
And also about what we feel can safely be left unsaid in a high-level
description. My object-centric viewpoint won't let me leave them out.
(Not
trying to re-open the debate, just giving an example of what I mean).
This has been fairly clear from you, and from Lee (to a huge extent
) as
well. Speaking as an off and on instructor, however, I've seen the higher
levels of object state and monitors slow down entirely the learning of
what's actually taking place. And this confusion will often last clear into
"senior engineer" land. Engineers will often just view synchronization as
some snake-oil magic. We've all seen this belief in synchronized magic
bullets. IMO, the way to solve this is to have the person focus on the
notion of /critical section/ first, and how the mutex works.
I've actually seen people suggest adding synchronization even when there is
no multithreading going on at all! I believe John C. Bollinger is right in
his assessment in this case as well: the OP needs to understand the
[slightly] lower level of what's going on, which he clearly doesn't.
--
Unix users who vehemently argue that the "ln" command has its arguments
reversed do not understand much about the design of the utilities. "ln arg1
arg2" sets the arguments in the same order as "mv arg1 arg2". Existing file
argument to non-existing argument. And in fact, mv itself is implemented as
a
link followed by an unlink.