Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何测量线程等待db连接时出现的延迟?_Java_Multithreading_Database Connection_Connection Pooling - Fatal编程技术网

Java 如何测量线程等待db连接时出现的延迟?

Java 如何测量线程等待db连接时出现的延迟?,java,multithreading,database-connection,connection-pooling,Java,Multithreading,Database Connection,Connection Pooling,假设我有10个deamon线程的java应用程序 假设我有最多3个连接的连接池(例如c3p0) 每个线程都在处理数据库。当一个线程在阻塞状态下等待连接时,可能会发生这种情况(当然是真的发生) 我需要测量线程的总延迟,当每个线程都处于阻塞状态等待连接时 最好的方法是什么?使用您自己的实现扩展线程,并重写“notify”方法,以便将“system.currentTimeMilis”保存在某种缓存中-您可以使用milisons参数调用一个方法来处理每个线程的notifyTimes。 然后在扩展线程中覆

假设我有10个deamon线程的java应用程序

假设我有最多3个连接的连接池(例如c3p0)

每个线程都在处理数据库。当一个线程在阻塞状态下等待连接时,可能会发生这种情况(当然是真的发生)

我需要测量线程的总延迟,当每个线程都处于阻塞状态等待连接时


最好的方法是什么?

使用您自己的实现扩展线程,并重写“notify”方法,以便将“system.currentTimeMilis”保存在某种缓存中-您可以使用milisons参数调用一个方法来处理每个线程的notifyTimes。 然后在扩展线程中覆盖run/start方法并再次获取currentTimeMilis。 也获取wait方法的currentTime(再次重写,不要忘记在重写中调用super方法)。 使用这3种类型的线程时间,您应该能够完成基准测试