本帖最后由 马进 于 2012-7-29 00:56 编辑
大家都知道线程执行体run()方法一旦执行完毕,线程就会退出,同时JVM会释放掉线程占用的所有资源,让线程呈现出一中只读状态。在处理数据来源不确定,处理时间不确定的场景下就无法保证线程的合理运作。由于JDK提供的线程暂停是非线程安全的,可能造成死锁,已经被不推荐使用,这样我们就需要一种机制对线程做暂停,重新启动,停止等操作。以下是我写的一段代码,从工作经验中所得。线程启动后,会一直处于运行状态,线程每次执行都会无条件休眠256ms以缓解不必要的实时性带来的巨大CPU消耗.
同时使用模板方法,让子类有更好的扩展延伸性 。
将执行体独立成一个方法execute ()便于扩展,同时在执行体前加入一个preConditions ()执行体前置条件,将执行体执行的充分条件独立,避免多余代码运算,提高效率。
|