将 File-I/O-Operations 导出到推荐或必须的单独线程中?
Export File-I/O-Operations into seperate threads recommended or maybe a must?
目前我正在编写测试并考虑将所有 File-I/O-Operations 导出到我的 GUI 应用程序中的单独线程,因为我担心大文件会阻塞主线程。这不是用户友好的。
将 File-I/O-Operations 导出到单独的工作线程中很常见吗?
好吧,这要视情况而定,但总的来说这是个好主意。如果您的主线程是您的事件泵,那么可以;强烈建议在单独的线程中执行冗长的操作。特别是如果应用程序使用的是慢速 GPRS/3G 连接,您通常不希望应用程序在使用网络时被阻止。本地文件操作有时也会很慢,具体取决于设备的繁忙程度。
Java Swing Worker 模型是如何以模块化和 thread-safe 方式执行此操作的示例。我建议您研究它以获取灵感,因为它有据可查。再一次,我确信 Android 在主线程外执行代码也有类似的功能。
如果您正在为其编写(单元)测试,我建议建立一个模式,在该模式中您可以将您的工作代码作为测试的一部分注入,并使您的 I/O 代码严格脱离主线程的上下文.这样,您就可以模拟应用在慢速连接期间的行为,而无需实际使用网络。
目前我正在编写测试并考虑将所有 File-I/O-Operations 导出到我的 GUI 应用程序中的单独线程,因为我担心大文件会阻塞主线程。这不是用户友好的。
将 File-I/O-Operations 导出到单独的工作线程中很常见吗?
好吧,这要视情况而定,但总的来说这是个好主意。如果您的主线程是您的事件泵,那么可以;强烈建议在单独的线程中执行冗长的操作。特别是如果应用程序使用的是慢速 GPRS/3G 连接,您通常不希望应用程序在使用网络时被阻止。本地文件操作有时也会很慢,具体取决于设备的繁忙程度。
Java Swing Worker 模型是如何以模块化和 thread-safe 方式执行此操作的示例。我建议您研究它以获取灵感,因为它有据可查。再一次,我确信 Android 在主线程外执行代码也有类似的功能。
如果您正在为其编写(单元)测试,我建议建立一个模式,在该模式中您可以将您的工作代码作为测试的一部分注入,并使您的 I/O 代码严格脱离主线程的上下文.这样,您就可以模拟应用在慢速连接期间的行为,而无需实际使用网络。