将文件I / O操作导出到建议的单独线程中,还是必须?

时间:2015-12-30 18:57:12

标签: android file-io java-threads

目前我正在编写测试并考虑将所有File-I / O-Operations导出到我的GUI-App中的单独线程中,因为我担心大文件会阻塞主线程。这不是用户友好的。

将File-I / O-Operations导出到单独的工作线程中是常见的吗?

1 个答案:

答案 0 :(得分:0)

嗯,这取决于,但一般来说这是一个非常好的主意。如果您的主线程是您的事件泵,那么是;强烈建议在单独的线程中执行冗长的操作。特别是如果应用程序使用慢速GPRS / 3G连接,您通常不希望应用程序在使用网络时阻止。本地文件操作有时也会很慢,具体取决于设备的繁忙程度。

Java Swing Worker模型是如何以模块化和线程安全的方式执行此操作的示例。我建议你研究它的灵感,因为它有很好的记录。再说一遍,我确信Android在主线程之外有类似的工具来执行代码。

如果您正在编写(单元)测试,我建议您建立一个模式,您可以在其中注入您的工作代码作为测试的一部分,并使您的I / O代码严格地保持在主线程的上下文之外。这样,您就可以模拟应用程序在慢速连接期间的行为,而根本不需要使用网络。