做压力测试的时候写了一个多线程去调用一个接口,想测试下接口最多能同时支持多少个线程,每个线程耗时多长。
最初写的代码
原想使用前后时间相减就是耗时,然后除以线程数,就得到每个线程的耗时。
但是现实是多线程的方法和我获得时间的方法是同步的,多线程还没有执行完成,我就获得了结束时间,所以时间获得的不正确,如果在//获得结束时间的地方打上断点就可以获得正确的时间了,(因为断点是等待多线程执行完成才执行的)。
找到问题了就好改了,改成下面的就好了。
先在主类中设置一个静态的变量,然后在多线程的run方法中每次加一
使用死循环一直等待多线程结束,当多线程中逐步累加的全局变量值等于默认的循环次数时就进入,获得时间之后break,跳出循环。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/industrynews/13634.html