package ALBasicServer.ALServerAsynTask; import ALBasicCommon._AALBasicThread; /************************ * 异步任务处理线程函数体 * @author alzq * */ public class ALAsynTaskThread extends _AALBasicThread { /** 线程是否退出 */ private boolean _m_bThreadExit; /** 本线程内任务处理对象 */ private ALAsynThreadTaskManager _m_tmTaskManager; public ALAsynTaskThread() { _m_bThreadExit = false; _m_tmTaskManager = new ALAsynThreadTaskManager(); } public void exitThread() { _m_bThreadExit = true; } /************* * 获取任务管理对象 * * @author alzq.z * @time Feb 20, 2013 10:43:20 PM */ protected ALAsynThreadTaskManager _getTaskManager() { return _m_tmTaskManager; } /****************** * 线程执行函数 * * @author alzq.z * @time Feb 20, 2013 10:48:09 PM */ @Override protected void _run() { while(!_m_bThreadExit) { //每次获取第一个可执行任务进行处理 @SuppressWarnings("rawtypes") ALAsynTaskInfo info = _m_tmTaskManager.popFirstAsynTask(); if(null != info) { info.run(); } } } }