【发布时间】:2012-12-24 02:18:04
【问题描述】:
我实现了一个下载管理器,它工作正常,除了我注意到一件事,有时线程在写入文件时会阻塞一段时间(50 毫秒到最多 10 秒),我在 Android 上运行这个程序(基于 Linux ),我的猜测是操作系统级别是否有某种 buffer 需要刷新,而我的写入实际上写入该缓冲区,如果该缓冲区已满,则写入需要等待.
我的问题是可能导致阻塞的可能原因是什么?
【问题讨论】:
-
java.io.BufferedWriter 是否也适用于 Android?
-
"...可能导致阻塞的原因是什么?" - 没有看到你的代码是不可能知道的。
-
写入闪存是一项有时会遇到延迟的操作。 Android 是一个多任务系统,但许多实现在 Flash 接口的实现细节上存在“一次一个”的瓶颈,因此在某些情况下可能会看到性能不佳。这 10 秒显然令人惊讶,让人想知道手机上还运行着什么。