Nicholas Lo writes: > According to Amos' How-To: Thread Safety in Zope 2, what is mutable > global or shared variables?? What is the scope of such global variables? > Zope wide? module wide? I did not read this How-To. Thus, be careful with my explanation. A mutable object is one that can change its value over time. E.g. a list is mutable (you can "append", "insert", "delete" elements) while a tuple is not. If several threads concurrently access a mutable object (or a mutable binding, i.e. a name (variable) is bound to different values over time), results can be quite unpredictable. Usually, you would use a synchronization mechanism to control access to objects. See the Python modules "thread" and "threading" for functions available for this purpose. > If global variable is not permitted, how can I approach thread > programming in Zope? Without global variables, how can I control > threads? You can use global variables -- provided you know what you do and ensure proper synchronization. You may want to look at "ZODB.Transaction.get_transaction" to learn how Zope itself manages its transaction context in view of serveral threads. Dieter PS: I do not like MIME messages in this list. The list software strips MIME headers and my mail reader is therefore unable to decode the message. _______________________________________________ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )