Python中的线程安全(问题如何工作)

And*_*eas 5 python multithreading

我已经阅读了有关python的线程的文档,并且我已经了解了以下内容应该成立:您可以访问(读取)任何PoD或python特定对象(例如数组)而不会导致多线程失败程序同时尝试同样的事情,但你不能改变它们并接受线程完整性.

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

bob*_*nce 1

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

检查是否存在可能不是线程安全的底层共享资源,例如。如果每个线程都使用可能会导致问题的数据库连接对象,除非该对象被明确记录为线程安全的。