日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 文件并发读写,Android下,rxJava+retrofit 并发上传文件和串行上传文件的效率为什么差不多?...

發布時間:2025/3/19 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 文件并发读写,Android下,rxJava+retrofit 并发上传文件和串行上传文件的效率为什么差不多?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有個功能需要同時上傳N個文件。代碼如下:

ApiService as = ApiManager.getApiService();

final ExecutorService es = Executors.newFixedThreadPool(9);

final int count = Bimp.tempSelectBitmap.size();

final CountDownLatch finishedLatch = new CountDownLatch(count);

final long start = System.currentTimeMillis();

for (int k = 0; k < count; k++) {

final String fp = Bimp.tempSelectBitmap.get(k).getImagePath();

RequestBody fbody = RequestBody.create(MediaType.parse("image/*"), new File(fp));

as.uploadAttach(fbody)

.subscribeOn(Schedulers.from(es))

.observeOn(Schedulers.computation())

.subscribe(new Subscriber() {

@Override

public void onCompleted() {

}

@Override

public void onError(Throwable e) {

finishedLatch.countDown();

Log.e("UPLOAD FAILED -------->", fp);

}

@Override

public void onNext(UploadAttachJSON uploadAttachJSON) {

finishedLatch.countDown();

sb.append(uploadAttachJSON.url).append(",");

Log.e("UPLOADED IMAGE URL -->", uploadAttachJSON.url);

h.post(new Runnable() {

@Override

public void run() {

pd.setMessage("正在上傳... " + (count - finishedLatch.getCount()) + "/" + count);

}

});

}

});

}

try {

finishedLatch.await();

} catch (InterruptedException e) {

e.printStackTrace();

}

long end = System.currentTimeMillis();

Log.e("IMAGE UPLOAD COMPLETED", (end - start) + "");

es.shutdown();

以上為并行的寫法。從線程池中拿出N個線程來同時上傳這N個文件。

串行寫法:

.subscribeOn(Schedulers.io()) 或者 用Observable.merge來合并這些請求。

結果發現并行和串行所花費的時間幾乎都差不多。。 是不是和android底層有關?這些網絡請求其實最后都被底層給block了,然后串行出去?

總結

以上是生活随笔為你收集整理的android 文件并发读写,Android下,rxJava+retrofit 并发上传文件和串行上传文件的效率为什么差不多?...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。