try (CloseableHttpAsyncClient client = HttpAsyncClients.createDefault()) {
client.start();
MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
List<HttpPost> posts = new ArrayList<>();
for (int i = 0; i < 10; i++) {
if (!uploadQueue.isEmpty()) {
String filename = uploadQueue.take();
HttpPost link = new HttpPost();
HttpEntity fileEntity = entityBuilder.addBinaryBody("file", new File(filename)).build();
link.setEntity(fileEntity);
link.addHeader("filename", filename);
link.setURI(URI.create("serverLink"));
posts.add(link);
}
}
CountDownLatch latch = new CountDownLatch(posts.size());
for (HttpPost request: posts) {
String filename = request.getFirstHeader("filename").getValue();
client.execute(request, new UploadHandler(latch, filename));
}
latch.await();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
Эта вещь работает очень медленно. Все файлы размером менее 1 КБ. Но если я удаляю все циклы, это становится намного быстрее. Можете ли вы помочь мне понять, почему?