MySQL Connector/JDBC thread 安全嗎?

2022-09-03 07:04:59

标准的 MySQL JDBC 驱动程序是否线程安全?具体来说,我想在所有线程上使用单个连接,但每个语句将仅在单个线程中使用。是否有某些方案是安全的,而其他方案则不是?你在这里有什么经验?


答案 1

每个连接启动/提交事务。除非你正在做一些非常具体的事情(我真的想不出一个可以诚实的例子),否则你最好使用连接池和每个线程的连接。


答案 2

如果 autocommit = 1,则让多个线程共享同一连接是非常可行的,前提是对连接的访问是同步的。如果 autocommit = 0,则必须通过某种互斥锁控制对连接的访问,直到提交发生。

除非应用程序可以拥有的连接数绝对受到限制,否则连接池可能是更可行的替代方法。


推荐