仿照网上写了一个方法统计n个线程同时调一个方法,都执行完需要多长时间,发现一个奇怪的问题packageme.ele.coffe.hr.stress.test;publicclasstest{privatestaticIntegererror=0;privatestaticIntegerthreads=40;privatestaticLongstartTime;privatestaticLongendTime;publicstaticvoidmain(String[]args){System.out.println("begintesting");System.out.println("线程数"+threads);WorkThread[]workThreads=newWorkThread[threads];for(inti=0;iworkThreads[i]=newWorkThread(); }startTime=System.currentTimeMillis();for(inti=0;iworkThreads[i].start(); }}privatestaticclassWorkThreadextendsThread{publicvoidrun(){try{//要测试的函数Strings=testFunctoin.testString();}catch(Exceptione){synchronized(error){error++;}e.printStackTrace();}synchronized(threads){System.out.println("当前运行线程:===================="+getName());threads--;if(threads==0){endTime=System.currentTimeMillis();System.out.printf("总耗时:%d毫秒\n",endTime-startTime);System.out.printf("连接失败数量:%d\n",error);}}}}}发现当线程数较小时可以打印出总耗时和连接失败数量但当线程数较大时(比如40),就打印不出来了。。。求帮忙看看有没有哪里写的不对
一只斗牛犬
莫回无
相关分类