我们正在运行一个 Java 服务器应用程序,它需要从 MySQL 数据库中获取信息,以便向连接的客户端显示数据。但是,由于一次连接的客户端很多,它必须在短时间内执行很多查询。
因此,会出现严重滞后/延迟,线程将死锁并暂停,直到查询完成...
除了使线程异步之外,我们是否可以使用任何方法来防止线程在等待数据库时锁定,因为我们需要同步数据?
我见过诸如连接池之类的东西,但是我们需要一种方法来同步从数据库中获取数据,而不会使服务器应用程序的其余部分滞后。
应该是当用户点击x时,y会发生而不是用户点击x,程序锁定并暂停2 seconds then y 将在查询完成后发生。
最佳答案
绝对是连接池。
如果您使用的是 GlassFish 等 Web 应用程序,可以通过创建数据库(如 MySQL)的连接池,然后使用 JNDI 命名服务访问该池来实现。这种组合可以更有效地使用数据库访问。
这article非常适合。
关于java - 哪些方法可以减少 JDBC 线程暂停?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18811478/