2010-01-01 6 views
1

am3 s3 웹 서비스를 사용하여 s3에 파일을 업로드하고 있습니다.여러 개의 스레드를 만들어 s3에 업로드

파일 당 약 1 초가 걸리므로 병렬로 여러 스레드를 실행할 수있는 방법이 있습니까?

내가 업로드 호출을 수행하는 방법 말해봐 :

공공 무효 uploadToS3 (문자열 파일 이름);

어떻게 3 개의 스레드를 호출하여 호출 할 수 있습니까?

+3

파일 당 1 초 밖에 걸리지 않는 경우 초기화 오버 헤드 f 또는 FTP 연결은 시간 업로드에 비해 상당히 높습니다. 모든 파일을 일괄 처리 (zip으로 말하기)하고 업로드를 한번 해보십시오. – Chii

+0

HTTP, FTP 또는 완전히 다른 것을 사용하는 업로드가 있습니까? – skaffman

+0

amazon의 api – mrblah

답변

6

은 실행 가능한을 실행하기 위해 원하는대로 당신은 많은 스레드를 만들 수 있습니다하는 Runnable 인터페이스

public Runnable getS3UploadTask() { 
    return new Runnable() { 
     public void run() { 
      uploadToS3(); 
     } 
    }; 
} 

에 기능을 싸서 물론, 위의 업로드 방법 개선에 대한 문제와 관련이있을 수 있습니다.]]

+0

을 사용하여 웹 서비스 호출을 완성했습니다. 덕분에 배울 점이있었습니다. – mrblah

2

standard thread tutorial을 읽거나 질문을 편집하여 s3에만 해당되는 사항을 설명하십시오.

public void startS3Tasks(int workerCnt) { 
    for(int i=0; i<workerCnt; i++) { 
     new Thread(getS3UploadTask()).start(); 
    } 
} 

[편집 :

관련 문제