如何在使用Java多线程

时间:2016-04-25 22:39:38

标签: java multithreading httprequest httpurlconnection response-time

我正在构建一个程序,试图模拟真实客户端请求来衡量服务的“质量”。我正在尝试测量最大可接受的客户端数量。换句话说,我的网络服务器能够同时服务多少客户端。 我使用每个请求的响应时间和重新加载的数量来衡量“质量”。然后,我有1万个线程同时执行,但只是随机执行请求(以避免所有这些请求同时发送并导致拒绝服务)。

我的问题是如何在不受切换线程影响的情况下获得响应时间?到目前为止,我发现获得响应时间的唯一方法是:

long starTime = System.nanoTime();
InputStream inputStream = this.conn.getInputStream();
long endTime = System.nanoTime();
double elapsedTime  = TimeUnit.NANOSECONDS.toMillis((endTime - starTime))/1000.0;

this.conn对象是HttpURLConnection。

问题是在获取inputStream之后可以立即切换线程,并且endTime将不准确。更多线程可能会变得更糟。

如何获得不受线程切换影响的确切时间?

0 个答案:

没有答案