2010-07-02 34 views
5

我已阅读了python线程的文档,并且我认为它应该成立: 您可以访问(读取)任何PoD或Python特定对象(如数组),而不会导致多线程程序同时尝试同一事物的失败,但是您无法更改它们并接受线程完整性。Python中的线程安全(问题是如何工作的)

我的问题是关于类。我有一个委托数据库访问不同线程的服务器,但是我希望他们能够访问处理响应生成的类的一个实例。然而,我想知道如果这个类是线程安全的(我希望避免创建多个实例),线程不会更改任何实例变量(即self.something = (something)),每个函数都使用它自己的局部变量(它们可以访问类实例变量,但不会改变它们),所以总结它:我的问题是,如果许多线程可以同时使用相同的实例和调用函数。

回答

1

当地人是线程安全的,因为它们不在线程之间共享。所有常量(您从不从任何线程写入的变量)都是线程安全的。如果这是你的全部,那么是的,那很好。确保你正在谈论的班级成员真的不是从其他任何线程写的。

检查是否存在可能不是线程安全的底层共享资源,例如。如果每个线程正在使用可能会造成麻烦的数据库连接对象,除非该对象被具体记录为线程安全。

+0

Okey。谢谢,我会接受你的建议,并将数据库连接分配给每个线程。 – Andreas 2010-07-02 09:06:30