searcherlock.java

来自「nutch搜索的改进型工具和优化爬虫的相关工具」· Java 代码 · 共 81 行

JAVA
81
字号
/*
 * 创建日期 2005-4-25
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package net.nutch.searcher;

import org.apache.log4j.Logger;

/**
 * @author Administrator
 *
 * TODO 要更改此生成的类型注释的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
public class SearcherLock {
	//public static final Logger LOG = Logger.getLogger("lock");
	private static boolean[] locks = new boolean[200];
	private static boolean canLock = true;
	
	public static void init(){
		for (int i=0; i<locks.length; i++)
			locks[i] = false;
	}
	
	public static int getLock(){
		synchronized(locks){
			if (!canLock) return -1;
			for(int i=0; i<locks.length; i++){
				if (!locks[i]){
					locks[i] = true;
					//LOG.info("get lock : " + i);
					return i;
				}
			}
		}
		return -1;
	}
	
	public static void unLock(int i){
		synchronized(locks){
			locks[i] = false;
			//LOG.info("free lock : " + i);
		}
	}
	
	public static void stop(){
		synchronized(locks){
			canLock = false;
			//LOG.info("stop locks!");
		}
	}
	
	public static void start(){
		synchronized(locks){
			canLock = true;
			//LOG.info("start locks!");
		}
	}
	
	public static boolean isAllUnlock(){
		synchronized(locks){
			if (canLock){
				//LOG.info("canlock is true!");
				return false;
			}
			for (int i=0; i<locks.length; i++){
				if (locks[i]){
					//LOG.info("lock : " + i + " is locked!");
					return false;
				}
			}
			//LOG.info("all locks is free!");
			return true;
		}
	}
	

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?