我正在Java 7中构建程序,并且需要根据不同的下载文件值从后端服务器下载多个文件。在Java中的异步任务中实现繁忙等待
我会解释:
首先,我的程序下载通过的AsyncTask文件这个文件中包含的文件下载的价值。 onPost方法调用一个不同的方法来下载这些文件,并在将它们处理到我的应用程序数据中之后将它们插入到数组列表中。
现在,为了创建某种处理这些AsyncTasks的结尾,我创建了一个不同的AsyncTask以创建一个繁忙的等待,考虑到我知道要下载多少个文件,我检查了它的大小的数组等于while循环中的文件编号。
我的问题是,AsyncTask中的这种繁忙等待是否会禁用操作系统释放正在运行的处理器的能力,或者无需担心?
我不希望忙着等待来锁定处理器,以便更快地下载文件,或者它甚至有影响吗?
因为我假设异步任务有它自己的apoc并在需要时进入休眠我假设这种繁忙的等待不会滥用处理器?
需要下载的文件数量是否会影响处理时间?如果是,使用数据下载单个文件是否比多线程下载成几百个较小的文件更好?
最后,在AsyncTask中编写我自己的忙等待是否是一个好习惯?
我很快就会添加一些代码片段...
1.不要忙着等。 2.找到另一个解决方案... :)你的代码知道什么时候所有下载都完成了 - 最后一个添加到列表中的列表将看到该列表已满,并且可以在那里触发事件。 – ZhongYu