例如,考虑在用户在文档中键入新内容时处理大型文档的拼写检查程序。为了避免延迟用户的工作,拼写检查在一个单独的线程上完成,但拼写检查器仍然需要访问该文档。我们可以将对文档的所有访问权限放入同步块中,但这会强制编辑线程减速以适应拼写检查线程。
原则上,不应出于任何原因阻止用户交互线程。如果由于从多个线程访问文档而导致任何延迟,我们希望它们总是发生在拼写检查线程中,但是什么样的线程通信将保证?
同样的问题不仅仅适用于拼写检查。每当一个线程是某些数据的主要所有者而另一个线程对数据执行非关键的后台计算时,我们就会遇到相同的情况。我想这个解决方案是某种消息传递系统,其中辅助线程将请求发送到主线程,这些主线程以主线程自己的速度处理。
答案 0 :(得分:2)
只想分享一些我会用的技巧: