创建多个线程上传到s3
问题描述:
我使用amazons s3 web服务将文件上传到s3。创建多个线程上传到s3
每个文件大约需要1秒,是否有一种方法可以启动多个线程并行执行此操作?
说我有,做上传调用的方法:
公共无效uploadToS3(字符串文件名);
我该如何打电话给3个线程,每个线程都打这个电话?
答
总结你的函数在Runnable
接口
public Runnable getS3UploadTask() {
return new Runnable() {
public void run() {
uploadToS3();
}
};
}
和,然后请你执行了Runnable您可以创建多线程:
public void startS3Tasks(int workerCnt) {
for(int i=0; i<workerCnt; i++) {
new Thread(getS3UploadTask()).start();
}
}
[编辑:,上面当然只是解决你的“如何”的问题,可能与改善上传的目标完全不相关;)]
+0
完美的是我想学习的感谢! – mrblah 2010-01-02 01:06:40
如果每个文件只需要一秒,那么可能是初始化开销为f或者与上传时间相比,ftp连接非常高。为什么不尝试批量处理所有文件(比如说压缩文件)并上传一次? – Chii 2010-01-01 23:22:57
是否使用HTTP,FTP或其他方式完全上传? – skaffman 2010-01-01 23:43:33
其使用亚马逊api的网络服务电话 – mrblah 2010-01-02 01:05:09