[Lazarus] Threads
Hans-Peter Diettrich
DrDiettrich1 at aol.com
Fri Mar 23 16:15:56 CET 2012
Antonio Fortuny schrieb:
>>> 5. all useful code a thread needs should be encapsultated into a
>>> TObject descendant and instantiated within the thread's space.
>>
>> This can all be implemented in the derived TThread class.
> So, building an object around this utility code does not enlarge thread
> safety ?
Not really. Thread safe code must not access global variables, neither
directly nor indirectly in called subroutines. The latter cannot be
assured by wrapping the code in a class. See also:
>>> 6. all methods defined in the thread's definition, aprat from the
>>> EXECUTE procedure (obvious !), run into the thread creator space
>>> (the one which instantiates the thread, aka does something like
>>> wThread := TMyThread.Create (False) )
>>
>> Every procedure or method runs in the context of its *caller*.
>> Everything called from the thread's Execute method executes in the
>> thread context (stack, threadvars).
> Sounds very clear. Big idea using few words. I appeciate.
:-)
DoDi
More information about the Lazarus
mailing list