Django的“模型”API线程安全吗?

时间:2013-10-23 18:31:48

标签: python django multithreading thread-safety

具体来说,我只是谈论跨线程修改模型的单独实例(不共享相同的实例)。但是从一个线程调用save()是否安全,而多个其他线程正在调用Model.objects.query()或Model.objects.get()?

1 个答案:

答案 0 :(得分:1)

就我们所说的保存与获取和查询而言,您是安全的,因为涉及到不同的查询集对象。实际上,每个queryfilterget调用等都会创建一个新的查询集实例,并且不会修改任何以前存在的对象。

但显然,当您从多个线程/客户端同时访问/修改相同的数据库记录时,您可能会遇到问题。

我记得,为了处理数据库更新的一致性,在oracle db和带有禁用自动提交的mysql inndodb中有一个select for update语句。