public A extends Thread{
public static void main(String args[]){
List<Thread> threadList = new ArrayList<Thread>();
for (int i = 1; i <= 10 ; i++) {
Thread t = new Thread(new A());
t.setPriority(Thread.MAX_PRIORITY);
threadList.add(t);
}
for(Thread t:threadList){
t.start();
}
}
@Override
public void run(){
for(int i=0;i<1000;i++){
// 使用 apache httpcomponents-client 套件
HttpClient client = HttpClientBuilder.create().build();
HttpGet request = new HttpGet(url);
HttpResponse response;
// 10 个 Thread 排队发送 request
synchronized (A.class) {
response = client.execute(request);
}
.........
}//end for
}
}
目前遇到一个问题 , 一个 Thread 发送 1000 次 request ,
一次执行 10 个 Thread , 每次执行固定会有2个大幅落后其他8个
, 这 8 个 大概同时执行完毕 , 但另外 2 个可能只执行到 500 次
左右 , 谓何有 2 个 Thread 好像抢不到资源的样子 , 照理说会照
排队一个一个处理才是 ,应该不至于差这么多 冏rz
后来有设定优先级 , 10 个 Thread 都设最高 、 也有设定内存
-Xmx=2500m , 结果还是一样 0rz
有没有高手帮忙解答一下 >.<