我有下面的代码,其中第一我创建随需应变的数据库连接,然后在多线程共享它。这工作正常。现在,我想知道是否有可能跟踪使用此数据库连接的所有线程是否已完成执行,以便关闭数据库连接。任何关于如何实现这一点的指导都会有所帮助。监测线程执行
Connection connection = null;
Properties connectionProperties = getProperties();
for (int reqIdx = 0; reqIdx < requests.length(); reqIdx++) {
connection = DBonnection.getConnection(connectionProperties);
ConnectorRunner connectorRunner = null;
try {
connectorRunner = new ConnectorRunner(someConnector);
connectorRunner.setDBConnection(connection);
} catch (Exception e) {
e.printStackTrace();
}
executorService.execute(connectorRunner);
}
共享多个线程之间的单一dababase连接是一个坏,坏主意。你将如何处理交易?使用连接池。 –
借调@JBNizet,结帐的Apache DBCP https://commons.apache.org/proper/commons-dbcp/ – Anil
的连接需求基于用户在运行时的特性,因此,我不能创建连接池。我正在共享连接,因为线程将使用同步负载按顺序使用连接。 – rufy