public boolean tryLock(ALMutex _cosObj)
    {
        if(null == _cosObj)
            return false;
        
        //默认当前加锁对象为空，表示无已经加锁的相同对象
        ALMutexInfo mutexInfo = null;
        if(!_isMutexListEmpty())
        {
            //根据最低等级锁对象判断是否可对该对象进行加锁
            ALMutexInfo topLvMutexInfo = _getLowestPriorityMutex();
            
            //判断最低等级锁是否比加锁对象还高级，当比加锁对象高级时，表示可以直接加锁
            if(topLvMutexInfo.getMutexPriority() >= _cosObj.getPriority())
            {
                //当需要枷锁的对象锁等级比最低等级还要高时(数字小)
                //判断加锁对象是否在队列中已经加过锁了，如果已经加过锁此时是安全的
                mutexInfo = _getMutexByPriority(_cosObj.getPriority());
                if(null == mutexInfo || mutexInfo.getObj() != _cosObj)
                {
                    //尝试获取等级高的锁，返回错误
                    ALServerLog.Fatal("无法获取高等级锁");
                    //输出堆栈
                    new Exception().printStackTrace();
                    //直接返回，不进行加锁处理
                    return false;
                }
            }
        }
        
        if(null == mutexInfo)
        {
            mutexInfo = new ALMutexInfo(_cosObj);
            //将锁信息添加到队列中，由于可以加锁的对象一定是最低级的锁，所以直接使用添加最低优先级锁函数
            _addLowestPriorityMutex(mutexInfo);
        }
        
        //加锁
        mutexInfo.addLockTime();
        
        return true;
    }