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

Python Django的“模型”API是线程安全的吗?,python,django,multithreading,thread-safety,Python,Django,Multithreading,Thread Safety,具体来说,我只讨论修改模型的单独实例,而不是跨线程共享同一个实例。但是从一个线程调用save是否安全,而多个其他线程正在调用Model.objects.query或Model.objects.get,例如?就我们所说的save与get和query而言,您是安全的,因为涉及不同的querysets对象。实际上,每个查询、筛选器、get调用等都会创建一个新的queryset实例,并且不会修改任何以前存在的对象 但很明显,当从多个线程/客户端同时访问/修改同一个db记录时,可能会遇到问题 我记得,为了

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

就我们所说的save与get和query而言,您是安全的,因为涉及不同的querysets对象。实际上,每个查询、筛选器、get调用等都会创建一个新的queryset实例,并且不会修改任何以前存在的对象

但很明显,当从多个线程/客户端同时访问/修改同一个db记录时,可能会遇到问题


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

什么叫安全?我们谈论的是什么样的数据库后端和事务隔离级别?MySql+ReadUncommitted。所谓安全,我的主要意思是,内存中的Django数据结构不会被破坏,也就是说,由于共享的全局状态是由多个线程修改而来的——本质上,我只担心python线程可能会出现的错误类别,而不是并发运行多个独立服务器。