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
有沒有高手幫忙解答一下 >.<