On 06/27/2011 08:01 PM, Andrew Brunner wrote:
That all changed with the introduction of multi-core systems. But in
those days everything was inline. Now a days everything is running
in parallel.
Yep. But the user application code just sees threads.
Since ages, the user code needs to consider threads to work concurrently
and any instruction of each active thread can be executed at exactly the
same time, exactly as if each thread has it's own CPU. So any possible
concurrent access needs to be protected by the means that are offered by
the appropriate libraries (e.g. critical section).
Thus regarding the user code there is no difference at all. The dirty
details need to be handled by the infrastructure (compiler, libraries, OS).
If the user code needs more performance that this simple paradigm can
offer it might introduce low level stuff (such as interlocked
instructions). But I would not consider such programs "user code" any more.
-Michael
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus