我最近非常感兴趣地关注this video on Google Chrome。它解释了谷歌Chrome使用一个线程用于IO,一个用于打开文件,一个用于模块间通信。
我想我可以使用类似于我自己的东西 - 目前相当混乱 - 应用程序。
我想知道是否有关于此类线程划分的最佳实践或模式的好文章?
答案 0 :(得分:4)
只要您的应用程序具有可分为不同组的任务,它就是多线程的候选者。但是请注意,这是一个危险的游戏 - 对于每个可以找到优势的文章,有两个关于被多线程实现所困扰 - 它可以创建仅在某些配置中发生的错误(在用户计算机上),或者更糟糕的是,不能在调试器中重复,因为减慢执行的行为足以导致错误无法出现(竞争条件因此行为而臭名昭着)。
除了这个警告之外,多线程可以大大提高应用程序的实际性能和感知性能。这些是特定于.NET的,但是提供一个通用的初级入门,解释后台线程的优点并保持UI响应:
答案 1 :(得分:0)
如果你正在使用.NET,ThreadPool类是一个很好的起点,可以为你管理一些(但不是全部)多线程的细微之处。
有关优缺点的讨论,另请参阅MSDN上的Threads and Threading主题。