标签:避免 ctas 模型设计 news 读书笔记 asynctask style 时间 poll
假设在主事件循环中调用的代码须要非常长时间才干运行完毕。那么用户界面就会“冻结”,直到代码运行完毕。这是由于仅仅有当运行控制权返回到主事件循环后,才干处理兴许的用户界面事件。
非常多尝试多线程的GUI框架的努力,最总都由于静态条件和死锁导致的稳定性问题,又回到单线程的时间队列模型的老路上。
1. 顺序事件处理
由于仅仅有唯一的线程在处理GUI任务。全部任务都不须要考虑并发且都是顺序运行,可是问题是假设在任务中运行时间过长,或导致兴许操作无法响应。(Android会提示Andorid Not Response异常)
2. Swing中的线程限制
GUI的单线程规则:组件与模型仅仅能在事件分派线程中被创建、改动和请求。
在Andorid中假设在子线程进行创建或者更新UI操作会抛出异常。
1. 线程安全的数据模型
ConcurrentHashMap无法提供一致的数据快照。
将Future和newSingleThreadExecutor一起使用处理单线程可取消的任务。
《Java并发编程实战》第九章 图形用户界面应用程序界面 读书笔记
标签:避免 ctas 模型设计 news 读书笔记 asynctask style 时间 poll
原文地址:http://www.cnblogs.com/brucemengbm/p/6708262.html