0
我打電話給一個API來獲取ID列表。該列表包含大約55.000個ID。然後,我希望啓動線程並根據ID獲取有關其對象的信息並將其存儲在數據庫中。我設法使用線程來做到這一點,但想知道如何使用線程池來優化它。我想要做的10個線程,將它們添加到一個線程池,等待它們完成,等待10秒(或我會得到429,太多的請求),然後再開始10個線程,直到所有完成。爲了做到這一點,需要做些什麼?在JAVA中反覆使用線程池
此外,該列表的長度未知,因此它可能不是最後一個池中的10個項目,如果這有所不同。
這是我到目前爲止工作的。 (睡眠不是真正的工作,一會兒429發生後反正)
JSONObject IDs = getIDs();
for (int i = 0; i <= IDs.length(); i++) {
try {
int ID = IDs.getJSONArray("app").getInt("appid");
// get info on object and store it in database
Thread t = new Thread(new MyRunnable(ID));
t.start();
// sleep or 429, too many requests
Thread.sleep(1000);
} catch (JSONException | InterruptedException e) {
e.printStackTrace();
}
}
瞭解適用於Java的基本推薦語法。不建議使用「IDs」等變量名稱 –
@KavishMittal我知道,這只是一個例子。 – McSlush
你仍然應該發佈適當和格式良好的問題。 –