protected void _dealRecMessage()
    {
        if(null == _m_scSocketChannel)
            return ;

        ByteBuffer buf = null;
        boolean needAddDealTask = false;
        
        _lockRecMes();

        if(!_m_lRecMessageList.isEmpty())
        {
            //非空才能取出第一个消息对象
            buf = _m_lRecMessageList.getFirst();
        }
        
        _unlockRecMes();

        if(null != buf)
        {
            //处理消息
            try
            {
                _m_clListener.receiveMsg(buf);
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }
        }

        _lockRecMes();

        //必须在处理完成后才删除BUF，否在在处理过程中可能因为插入接收数据导致同时开启第2个任务进行消息处理
        _m_lRecMessageList.pop();
        
        //当需要发送队列不为空时，继续添加发送节点
        if(!_m_lRecMessageList.isEmpty())
            needAddDealTask = true;
        
        _unlockRecMes();
        
        if(needAddDealTask)
            ALSynTaskManager.getInstance().regTask(new SynReceiveMessageTask(this));
    }