gpt4 book ai didi

java - 监控线程执行

转载 作者:行者123 更新时间:2023-12-02 03:53:42 25 4
gpt4 key购买 nike

我有下面的代码,首先我创建一个按需数据库连接,然后与多个线程共享它。这工作正常。现在,我想知道是否可以跟踪使用此数据库连接的所有线程是否已完成执行,以便我可以关闭数据库连接。任何有关我如何实现这一目标的指导都会有所帮助。

    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);
}

最佳答案

最简单的方法是使用 CountDownLatch来自标准 JDK 设施。在你的主线程中执行

CountDownLatch doneSignal = new CountDownLatch(requests.length());

for (Request req : requests) {
ConnectorRunner connectorRunner = new ConnectorRunner(doneSignal);
connectorRunner.setConnection(DBonnection.getConnection());
executorService.execute(connectorRunner);
}

doneSignal.await();
DBonnection.dispose();

完成后,ConnectorRunner 必须简单地调用 doneSignal.countDown()

关于java - 监控线程执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35667344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com