我想制作一个用Python编写并使用SQLAlchemy的数据库应用程序编程接口(或其他任何数据库连接器,如果被告知将SQLAlchemy用于此类任务不是好方法)。该设置是在Linux或BSD上运行的MySQL服务器,以及在Linux或BSD机器(外部或本地)上运行的Python软件。
基本上我想做的是为每个连接生成一个新线程,并且该协议将是自定义且非常简单的,尽管对于每个请求,我想打开一个新事务(或我已阅读的会话),然后我需要提交会议。我现在面临的问题是,来自另一个连接的另一个会话同时发生的可能性很高。
我的问题是该如何处理这种情况?
会话对象 不是 线程安全的,而是 线程本地的
。从文档:
“该
Session
对象被完全设计为以 非并发 方式使用,就多线程而言,这意味着“一次仅在一个线程中”
..某些进程需要就位,以免跨多个线程进行多调用实际上获得了同一个会话的句柄。我们将此概念 线程 称为 本地存储 。”
如果您不想自己完成管理线程和会话的工作,SQLAlchemy的ScopedSession
html" target="_blank">对象可以为您解决这个问题:
ScopedSession
默认情况下,该对象使用threading.local()作为存储,以便Session
为所有调用ScopedSession
注册表的人维护一个,但仅在单个线程的范围内。在另一个线程中调用注册表的调用者将获得另一个线程本地的Session实例。使用这种技术,
ScopedSession
可以在应用程序中提供一种快速且相对简单的方式来提供单个全局对象,该对象可以安全地从多个线程中调用。
请参阅上下文/本地线程会话中的示例,以设置自己的线程安全会话:
# set up a scoped_session
from sqlalchemy.orm import scoped_session
from sqlalchemy.orm import sessionmaker
session_factory = sessionmaker(bind=some_engine)
Session = scoped_session(session_factory)
# now all calls to Session() will create a thread-local session
some_session = Session()
# you can now use some_session to run multiple queries, etc.
# remember to close it when you're finished!
Session.remove()
问题内容: 我正在使用这些功能在画布上绘制小圆圈: 这是绘制圆圈的功能: 这个创建画布和圆圈: 我称这些行来运行项目: 什么是执行正确的方法,并在不同的线程? 我已经尝试了以下方法,但无法使其正常工作。: 有人可以告诉我如何运行这些线程吗? 问题答案: 当需要此功能时,您要做的是通过将事件置于线程共享的队列中来安排要执行的事件。这样,在给定线程中,您可以通过排队指定要运行“ create(50,…
我正在画布上用以下函数绘制小圆圈: 这是将绘制圆圈的函数: 这个创造了画布和圆圈: 我调用以下行来运行项目: 在不同的线程中执行和的正确方法是什么? 我尝试了以下方法,但无法使其起作用: 有人能告诉我如何运行这些线程吗?
本文向大家介绍C#多线程学习之(四)使用线程池进行多线程的自动管理,包括了C#多线程学习之(四)使用线程池进行多线程的自动管理的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#多线程学习之使用线程池进行多线程的自动管理。分享给大家供大家参考。具体如下: 在多线程的程序中,经常会出现两种情况: 一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应
提前谢谢你
问题内容: 我正在努力加快某些过程的执行速度,这些过程将大量记录(大多数是几百万个)发布到Elasticsearch。在我的C#代码中,我已经使用Dataflow实现了一个多线程解决方案,如下所示: 然后我要实现的发送批量请求调用: 我的问题 ,你 是对的实用性存在的数据流管道的一部分的锁内执行额外的线程。 这个可以吗?我可以在性能,执行,缓存/内存丢失等方面看到任何潜在的问题吗? 任何见识都会很
本文向大家介绍java多线程CyclicBarrier的使用案例,让线程起步走,包括了java多线程CyclicBarrier的使用案例,让线程起步走的使用技巧和注意事项,需要的朋友参考一下 1、CyclicBarrier: 一个同步辅助类,用于协调多个子线程,让多个子线程在这个屏障前等待,直到所有子线程都到达了这个屏障时,再一起继续执行后面的动作。 2、使用场景举例: 年末公司组织团建,要求每一