当前位置: 首页 > 知识库问答 >
问题:

正在查找等待从ArrayBlockingQueue轮询的任务数?

苏阳州
2023-03-14

问题是,我无法获取在此ArrayBlockingQueue等待获取db连接的线程数。我查看了文档,其中似乎与我想要的内容无关,因为想要获得db连接的任务是线程,我不确定如何手动计算等待db连接的任务数。

感谢任何帮助。

共有2个答案

陶星波
2023-03-14

出于测试目的,用自己的类包装ArrayBlockingQueue,并在类中使用AtomicInteger

当一个新线程等待时,增加原子整数,当一个线程完成时,减少原子整数。

您现在可以随时随地记录或查看该原子整数的值。

南宫星波
2023-03-14

如果不使用反射,我唯一能想到的就是拦截对ABQ中任何poll/remove方法的调用。你可以扩展ABQ,让一些计数器在调用超级计数器之前递增,然后最终递减。

private final AtomicInteger count = new AtomicInteger(0);
// if you are using Java 8 I would prefer LongAddr
public T poll(){
   count.incrementAndGet();
   try {
        return super.poll()
   }finally{
      count.decrementAndGet();
   }
}
 类似资料:
  • 在C#中,我有以下两个简单的例子: 第一个示例创建一个打印“开始”的任务,等待5秒钟打印“完成”,然后结束任务。我等待任务完成,然后打印“全部完成”。当我运行测试时,它会按预期运行。 第二个测试应该具有相同的行为,只是由于使用了async和Wait,任务内部的等待应该是非阻塞的。但是这个测试只打印“开始”,然后立即打印“全部完成”和“完成”,永远不会打印。 我不知道我为什么会有这样的行为:S非常感

  • 我在网上搜索了很多关于vs await async,但是在这个特定的使用场景中,我并不真正理解其中的区别。我相信情况很简单。 vs. 其中,是一个异步方法,其中包含一些异步调用,例如使用wait调用db。 问题: 在这种情况下,两者之间有什么区别吗?任何帮助或意见,谢谢!

  • 使用asyn/wait vs wait有什么区别task.run() 等待任务。运行示例- 异步等待示例-

  • 问题内容: 故事: 在Javaselenium语言绑定中,有一个class,它可以严格控制如何检查期望的条件: 每个FluentWait实例都定义了等待条件的最长时间,以及检查条件的频率。此外,用户可以配置等待以在等待时忽略特定类型的异常,例如在页面上搜索元素时的NoSuchElementExceptions。 换句话说,可以更改应用预期条件检查的轮询间隔,默认情况下为500毫秒。另外,可以设置要

  • 本文向大家介绍Mysql查询正在执行的事务以及等待锁的操作方式,包括了Mysql查询正在执行的事务以及等待锁的操作方式的使用技巧和注意事项,需要的朋友参考一下 使用navicat测试学习: 首先使用set autocommit = 0;(取消自动提交,则当执行语句commit或者rollback执行提交事务或者回滚) 在打开一个执行update 查询 正在执行的事务: 根据这个事务的线程ID(tr

  • 问题内容: 如何让我的代码等待,直到DispatchQueue中的任务完成?是否需要任何CompletionHandler或其他东西? 我正在使用Xcode 8.2并在Swift 3中编写。 问题答案: 使用s可以实现这一点。您可以在群组和通话达到平衡时得到通知: 或者您可以等待: 注意 :阻止当前队列(在您的情况下可能是主队列),因此您必须在另一个队列上(如上面的示例代码中)以避免 死锁 。