public void applyLock() throws KeeperException, InterruptedException{
		//为了测试锁顺序
		Thread.sleep(10000-this.sleepTime);
		
		//添加一个节点
		this.myLock = this.zk.create(this.distributedLockNodePath+"/"+this.nodeName, null, Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);
		System.out.printf("%s 添加节点:%s\n", this.num,myLock);
		
		//为了测试锁的顺序!!!!!,统一休眠10秒
		Thread.sleep(this.sleepTime);
		
		//获取子节点列表,并判断当前申请节点是否为最小节点
		List<String> children = this.zk.getChildren(this.distributedLockNodePath, false);
		
		//有序字节点列表
		SortedSet<String> sortedChildren = new TreeSet<>(new Comparator<String>() {

			@Override
			public int compare(String o1, String o2) {
				String[] o1s = o1.split("\\-");
				String[] o2s = o2.split("\\-");
				return Integer.valueOf(o1s[2])-Integer.valueOf(o2s[2]);
			}
			
		});
		for(String temp : children){
			sortedChildren.add(this.distributedLockNodePath+"/"+temp);
		}
		//小于当前节点的字节点
		SortedSet<String> lessThanChildren = sortedChildren.headSet(this.myLock);
		
		
		if(lessThanChildren.isEmpty()){//说明已经获取到当前锁
			this.doSomething();
		}else{//没有获取到当前锁
			//将当前锁的前一个节点设置观察者,防止羊群效应发生
			String preNode = lessThanChildren.last();
			System.out.printf("%s 前一个节点为%s\n",this.num,preNode);
			this.zk.exists(preNode, this);
		}
		/*for(int i = 0 ; i < sortedChildren.size() ; i++){
			System.out.printf("%s 当前节点为%s\n",this.num,temp);
			if(myLock.compareTo(sortedChildren) > 0){//如果不是最小的节点
				getLock = false;//则没有获取到锁
				
				//我们先默认getChildren返回的是按照升序排列的,则我们找到当前锁的前一个node,设置观察者,防止羊群效应发生
				int index = sortedChildren.lastIndexOf(temp);
				String preNode = sortedChildren.get(index);
				System.out.printf("%s 前一个节点为%s\n",preNode);
				this.zk.exists(preNode, this);
				
				break;
			}
			getLock = true;
		}
		
		if(getLock){//当前节点已经是最小的,已经获取到锁
			this.doSomething();
		}*/
	}