如何在循环中等待执行任务?

时间:2018-07-31 17:25:04

标签: android loops

    for(int i=0; i < size; i++){
        loadImageFromServer(i);
    }

loadImageFromServer();需要花费一些时间才能从服务器加载图像。

示例:
i为0时,loadImageFromServer(0)开始。但是然后,在完成loadImageFromServer(0)并开始loadImageFromServer(1)之前,循环再次执行。现在,我希望循环等待该时间(我的意思是,首先完成loadImageFromServer(0)的任务),然后执行下一个循环。该怎么做?

1 个答案:

答案 0 :(得分:0)

建议,理想情况下,您应该同时下载多张图片,并使用ThreadPoolExecutor

    int numberOfProcessor = Runtime.getRuntime().availableProcessors();

    ThreadPoolExecutor executor = new ThreadPoolExecutor(
            numberOfProcessor * 2,
            numberOfProcessor * 2,
            60L,
            TimeUnit.SECONDS,
            new LinkedBlockingQueue<Runnable>()
    );

    for (int i = 0; i < size; i++) {
        executor.execute(new Runnable() {
            @Override
            public void run() {
                loadImageFromServer();
            }
        });
    }