我最近在看this video on Google Chrome以极大的兴趣。它解释了 Google Chrome 使用一个线程进行 IO,一个用于打开文件,一个用于模块间通信。
我想我可以为我自己的应用程序使用类似的东西——目前非常困惑。
我想知道是否有任何关于此类线程化任务划分的最佳实践或模式的好文章?
最佳答案
只要您的应用程序具有可以分为不同组的任务,它就是多线程的候选对象。请注意,这是一个危险的游戏,虽然 - 对于每篇你可以找到优点的文章,有两篇关于被多线程实现咬伤 - 它可以创建仅在某些配置(在用户计算机上)中发生的错误,或者更糟的是,不能在调试器中复制,因为减慢执行速度的行为足以导致错误无法出现(竞争条件因这种行为而臭名昭著)。
撇开这个警告不谈,多线程可以极大地提升应用程序的实际性能和感知性能。这些是特定于 .NET 的,但提供了一个通用的初级读物,解释了后台线程的优势并使您的 UI 保持响应:
关于multithreading - 如何使用线程获得稳定、快速的 UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2791055/