@Override
    protected void _run()
    {
        if(ALBasicServerConf.getInstance().getCheckMutex())
        {
            //获得当前线程ID
            long threadID = Thread.currentThread().getId();
            _m_tmrThreadMutexMgr = ALThreadManager.getInstance().regThread(threadID);
            
            //注册失败直接返回，不进行线程体操作
            if(null == _m_tmrThreadMutexMgr)
                return ;
        }
        
        while(!_m_bThreadExit)
        {
            //执行任务循环
            //获取当前需要执行的任务，无任务时将等待信号量
            _IALSynTask curTask = ALSynTaskManager.getInstance().popCurrentTask();
            
            if(null != curTask)
            {
                try
                {
                    //执行对应任务
                    curTask.run();
                }
                catch (Exception e)
                {
                    ALServerLog.Error(curTask.getClass().getName() + " Error!!");
                    e.printStackTrace();
                    
                    //当有进行锁检测时需要尝试释放所有注册锁，避免异常的操作导致锁未释放
                    if(ALBasicServerConf.getInstance().getCheckMutex())
                        _m_tmrThreadMutexMgr.releaseAllMutex();
                }

                //在任务正常或异常执行完后都需要对锁的释放情况进行判断
                if(ALBasicServerConf.getInstance().getCheckMutex())
                {
                    if(!_m_tmrThreadMutexMgr.judgeAllMutexRelease())
                    {
                        //有部分锁未释放
                        ALServerLog.Error(curTask.getClass().getName() + " have some mutexs are not released !");
    
                        _m_tmrThreadMutexMgr.releaseAllMutex();
                    }
                }
            }
        }
    }