新人 Java の質問をしてもいいですか?
Web からいくつかのファイルをダウンロードしています。このメソッド download(url location) は複数回呼び出されます。
public static void download(final String url) {
Thread t = new Thread("download") {
@Override
public void run() {
try {
synchronized (object) {
// download & save
}
} catch(Exception e) {}
}
};
t.start();
}
ダウンロードが1つずつ行われるように、「同期」を追加しました。(複数のダウンロードが同時に発生することはありません)。
download() が複数回呼び出されても、同期は最初のスレッドが終了するまで他のスレッドをブロックすると推測しています。
上記のコードは機能しますか? またはキューを実装する必要がありますか? 1つずつデキューしますか?
同期は「十分な」スレッドをブロックできますか? (30? 50?) それとも制限がありますか?