Hat Amazon S3 einen Verbindungspool?

Ich habe den Code jemals benutzt

public static AmazonS3Client s3 = null;
...
BasicAWSCredentials c = new BasicAWSCredentials("absadgwslkjlsdjgflwa");
s3 =  new AmazonS3Client(c);

Es wird nur eine Instanz s3 erstellt, während Dutzende von Threads Bilder von s3.putObject () hochladen. In der Dump-Info konnte ich sehen, dass ein Thread die einzige Instanz s3 sperren würde, während die anderen warteten.

Ich denke also, dass es vielleicht schneller geht, wenn ich den folgenden Code verwende:

BasicAWSCredentials c = new BasicAWSCredentials("absadgwslkjlsdjgflwa");
for(int i = 0; i < 10; i++)
    amazonS3[i] = new AmazonS3Client(c);

Jedes Mal, wenn das System eine zufällige s3-Instanz abruft und das Bild hochlädt.

private static AmazonS3 getS3(){
    int i = (int)(Math.random() * 10); 
    return amazonS3[i];
}

Aber es scheint, dass das System langsamer wird. Warum ist das passiert? Vielleicht hat die einzige Instanz s3 bereits den Verbindungspool verwendet? Ich bin verwirrt.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage