亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cacher.java

?? 實現(xiàn)LRU算法的Cache源代碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
	// }
	//
	// synType = syn;
	// /*
	// if(synType==CacherSyner.SYN_SAME)
	// {
	// beforeInit(boolean clearexisted)
	// }*/
	//
	// cacherSyn.myTypeChange(strCacherName, syn);
	// }
	//
	// void setSynTypeNoSyn(short syn)
	// {
	// if (syn == CacherSyner.SYN_UNIQUE)
	// {
	// throw new RuntimeException("Not Support Unique Syner now!");
	// }
	// synType = syn;
	// }
	//
	// public short getSynType()
	// {
	// return synType;
	// }

	public void setCacheLength(int len)
	{
		// if (synType == CacherSyner.SYN_SAME_MEM)
		// { //判斷是否處于冰凍狀態(tài),如果是就阻塞
		// if (bFreezen)
		// {
		// try
		// {
		// wait();
		// setCacheLength(len);
		// }
		// catch (Exception e)
		// {}
		// }
		// }

		setCacheLengthNoSyn(len);

		// cacherSyn.mySetCacheLength(strCacherName, len);
	}

	void setCacheLengthNoSyn(int len)
	{
		cacherBuffer.setMaxBufferLen(len);
	}

	public int getCacheLength()
	{
		return cacherBuffer.getMaxBufferLen();
	}

	public int getContentLength()
	{
		return cacherBuffer.getBufferLen();
	}

	// void addToBufferDuringInit(Object o)
	// {
	// if (synType != CacherSyner.SYN_SAME)
	// {
	// throw new RuntimeException("Error Cache[" + strCacherName +
	// "],Only SYN_SAME cannot do During Init buffering!");
	// }
	// if (initState != DURING_INIT)
	// {
	// throw new RuntimeException("Error Cache[" + strCacherName +
	// "],Only During Init can buffering!");
	// }
	// duringInitBuf.addElement(o);
	// }

	private boolean bFreezen = false;

	void setFreezen(boolean bfreezen)
	{
		bFreezen = bfreezen;
		if (!bFreezen)
		{
			notify();
		}
	}

	boolean isFreezen()
	{
		return bFreezen;
	}

	/**
	 * 對某個對象進行保存 1,如果沒有做同步,直接保存并返回 2,如果有臟同步,則發(fā)送一個myChange事件
	 * 3,如果有唯一同步,則先判斷自己是否是主機(主機以IP地址小的為主), 如果不是:將該對象發(fā)送到主機 如果是:直接保存
	 * 
	 * @param id
	 *            該對象使用的id
	 * @param ob
	 *            對象指針
	 * @param lifttime
	 *            該對象在cache中保留的時間
	 */
	public void cache(Object key, Object ob, long livetime, boolean refresh)
	{ // System.out.println
		// ("cache---------["+this.strCacherName+"]["+key+"]["+ob+"]>>>>>") ;
	// if (synType == CacherSyner.SYN_SAME)
	// {
	// switch (initState)
	// {
	// case UNKNOW_INIT:
	// throw new RuntimeException(
	// "Not set beforeInit for this SYN_SAME cache[" +
	// strCacherName + "]!");
	// case BEFORE_INIT:
	// throw new RuntimeException(
	// "Not set beginInit for this SYN_SAME cache[" +
	// strCacherName + "]!");
	// }
	// }
	// else if (synType == CacherSyner.SYN_SAME_MEM)
	// { //判斷是否處于冰凍狀態(tài),如果是就阻塞
	// if (bFreezen)
	// {
	// try
	// {
	// wait();
	// cache(key, ob, livetime, refresh);
	// }
	// catch (Exception e)
	// {}
	// }
	// }

		Shell tmpsh = null;
		boolean bnew = false;
		synchronized (this)
		{
			tmpsh = cacherBuffer.accessShell(key);

			if (tmpsh == null)
			{
				tmpsh = new Shell(key, ob, livetime, refresh);
				cacherBuffer.addShell(tmpsh);
				bnew = true;
			}
			else
			{
				tmpsh.setContent(ob);
				tmpsh.setRefresh(refresh);
				tmpsh.setLiveTime(livetime);
				bnew = false;
			}
		}

		pulseClean();
		
		// switch (synType)
		// {
		// case CacherSyner.SYN_NO:
		// break;
		// case CacherSyner.SYN_DIRTY:
		// if (!bnew)
		// {
		// cacherSyn.myRemove(strCacherName, key);
		// }
		// break;
		// case CacherSyner.SYN_CHANGE:
		// cacherSyn.myAddOrChange(strCacherName, tmpsh);
		// break;
		// case CacherSyner.SYN_SAME:
		// if (initState == AFTER_INIT)
		// {
		// cacherSyn.myAddOrChange(strCacherName, tmpsh);
		// }
		// break;
		// case CacherSyner.SYN_UNIQUE:
		//
		// //cacherSyn.myAddOrChange(strCacherName,tmpsh) ;
		// //throw new RuntimeException("") ;
		// break;
		// }
	}

	/*
	 * public void update (Object key,Object ob,long livetime,boolean refresh) {
	 * Shell tmpsh = null ; synchronized (this) { tmpsh =
	 * cacherBuffer.accessShell (key) ; if (tmpsh==null) { tmpsh = new Shell
	 * (key,ob,livetime,refresh) ; cacherBuffer.addShell (tmpsh) ; } else {
	 * tmpsh.setContent (ob) ; tmpsh.setRefresh (refresh) ; tmpsh.setLiveTime
	 * (livetime) ; } } switch (synType) { case CacherSyner.SYN_NO: break ; case
	 * CacherSyner.SYN_DIRTY: cacherSyn.myRemove(strCacherName,key) ; break ;
	 * case CacherSyner.SYN_SAME: cacherSyn.myAddOrChange(strCacherName,tmpsh) ;
	 * break ; case CacherSyner.SYN_UNIQUE:
	 * //cacherSyn.myAddOrChange(strCacherName,tmpsh) ; //throw new
	 * RuntimeException("") ; break ; } }
	 */
	// public void cacheNoSyn (Object key,
	public void cache(Object key, Object ob, long livetime)
	{
		cache(key, ob, livetime, true);
	}

	/**
	 * 對某個對象進行保存,在cache中保留的時間為缺省值
	 * 
	 * @param id
	 *            該對象使用的id
	 * @param ob
	 *            對象指針
	 */
	public void cache(Object key, Object ob)
	{
		cache(key, ob, -1);
	}

	/**
	 * 獲得一個緩沖內(nèi)容的存活時間。
	 * 
	 * @return long 0表示不存在該內(nèi)容,-1表示永久,>0表示具體時間
	 */
	public long getLiveTime(Object key)
	{
		Shell tmpsh = cacherBuffer.getShell(key);
		if (tmpsh == null)
		{
			return 0;
		}
		if (tmpsh.isTimeOut())
		{
			cacherBuffer.removeShell(tmpsh);
			return 0;
		}
		return tmpsh.getLiveTime();
	}

	/**
	 * 刪除一個緩沖內(nèi)容
	 */
	public Object remove(Object key)
	{
		// if (synType == CacherSyner.SYN_SAME_MEM)
		// { //判斷是否處于冰凍狀態(tài),如果是就阻塞
		// if (bFreezen)
		// {
		// try
		// {
		// wait();
		// remove(key);
		// }
		// catch (Exception e)
		// {}
		// }
		// }

		Shell tmpsh = cacherBuffer.removeShell(key);
		if (tmpsh == null)
		{
			return null;
		}

		// if (synType == CacherSyner.SYN_NO)
		// {
		// return tmpsh.getContent();
		// }
		//
		// if ( (synType == CacherSyner.SYN_SAME) && (initState != AFTER_INIT))
		// {
		// return tmpsh.getContent();
		// }
		//
		// cacherSyn.myRemove(strCacherName, key);

		return tmpsh.getContent();
	}

	void removeNoSyn(Object key)
	{
		cacherBuffer.removeShell(key);
	}

	/**
	 * 獲取緩沖中的所有內(nèi)容的key,但不能保證所有的key,在以后的 使用過程中都可以獲得內(nèi)容。
	 */
	public Object[] getAllKeys()
	{
		Shell[] tmpsh = cacherBuffer.getAllShell();
		Object[] keys = new Object[tmpsh.length];
		for (int i = 0; i < tmpsh.length; i++)
		{
			keys[i] = tmpsh[i].getKey();
		}
		return keys;
	}

	/**
	 * 獲取緩沖中的所有內(nèi)容的key,但不能保證所有的key,在以后的 使用過程中都可以獲得內(nèi)容。
	 */
	public Enumeration getAllKeysEnum()
	{
		return cacherBuffer.getAllKeys();
	}

	/**
	 * 獲取緩沖中的所有內(nèi)容
	 */
	public Object[] getAllContents()
	{
		Shell[] tmpsh = cacherBuffer.getAllShell();
		Object[] conts = new Object[tmpsh.length];
		for (int i = 0; i < tmpsh.length; i++)
		{
			conts[i] = tmpsh[i].peekContent();
		}
		return conts;
	}

	/**
	 * 清空緩沖中的所有內(nèi)容
	 */
	public void clear()
	{
		// if (synType == CacherSyner.SYN_SAME_MEM)
		// { //判斷是否處于冰凍狀態(tài),如果是就阻塞
		// if (bFreezen)
		// {
		// try
		// {
		// wait();
		// clear();
		// }
		// catch (Exception e)
		// {}
		// }
		// }

		cacherBuffer.emptyBuffer();

		// if (synType == CacherSyner.SYN_NO)
		// {
		// return;
		// }
		//
		// if ( (synType == CacherSyner.SYN_SAME) && (initState != AFTER_INIT))
		// {
		// return;
		// }
		//
		// cacherSyn.myClear(strCacherName);
	}

	public boolean isEmpty()
	{
		return cacherBuffer.isEmpty();
	}

	public int size()
	{
		return cacherBuffer.size();
	}

	void clearNoSyn()
	{
		cacherBuffer.emptyBuffer();
	}

	/**
	 * 
	 */
	synchronized public Object get(Object key)
	{
		pulseClean();
		
		if (_DEBUG)
		{
			return null;
		}
		/*
		 * if (synType==CacherSyner.SYN_UNIQUE) {//對于唯一同步,使用最小ip作為主機,如果不是主機
		 * //則返回null if (!CacherSyner.getInstance().isSmallestIP()) return null ; }
		 */
		Shell tmpsh = cacherBuffer.accessShell(key);
		if (tmpsh == null)
		{
			return null;
		}
		if (tmpsh.isTimeOut())
		{
			cacherBuffer.removeShell(tmpsh);
			return null;
		}
		
		return tmpsh.getContent();
	}

	public Object peek(Object key)
	{
		Shell tmpsh = cacherBuffer.getShell(key);
		if (tmpsh == null)
		{
			return null;
		}
		if (tmpsh.isTimeOut())
		{
			cacherBuffer.removeShell(tmpsh);
			return null;
		}
		return tmpsh.getContent();
	}

	synchronized public void detectExpired()
	{
		Shell[] shs = cacherBuffer.getAllShell();
		for (int i = 0; i < shs.length; i++)
		{
			if (shs[i].isTimeOut())
			{
				cacherBuffer.removeShell(shs[i]);
			}
		}
	}

	public void setMaxBufferLength(int len)
	{
		setCacheLength(len);
	}

	public Shell[] getAllShell()
	{
		return cacherBuffer.getAllShell();
	}

	public CacherBuffer getCacherBuffer()
	{
		return cacherBuffer;
	}

	public void list()
	{
		/*
		 * System.out.println ("-----In cache has----------------") ; Shell[]
		 * shs = cacherBuffer.getAllShell () ; for (int i = 0 ; i < shs.length ;
		 * i ++) System.out.println (shs[i].toString()) ; System.out.println
		 * ("---------------------------------") ;
		 */
		cacherBuffer.list();
	}

	// ///////////////////////////////////////////
	public static void main(String args[])
	{
		try
		{
			Cacher cah = Cacher.getCacher();

			String inputLine;
			BufferedReader in = new BufferedReader(new InputStreamReader(
					System.in));
			while ((inputLine = in.readLine()) != null)
			{
				StringTokenizer st = new StringTokenizer(inputLine);
				int c = st.countTokens();
				String cmd[] = new String[c];
				for (int i = 0; i < c; i++)
				{
					cmd[i] = st.nextToken();
				}
				if (cmd.length == 0)
				{
					continue;
				}

				if (cmd[0].equals("cache"))
				{ //
					int l = cmd.length;
					if (l == 5)
					{
						cah.cache(cmd[1], cmd[2], Integer.parseInt(cmd[3]),
								Boolean.valueOf(cmd[4]).booleanValue());
					}
					else if (l == 4)
					{
						cah.cache(cmd[1], cmd[2], Integer.parseInt(cmd[3]));
					}
					else if (l == 3)
					{
						cah.cache(cmd[1], cmd[2]);
					}
				}
				else if (cmd[0].equals("ls"))
				{
					cah.list();
				}
				else if (cmd[0].equals("get"))
				{
					Object ob = cah.get(cmd[1]);
					System.out.println("" + ob);
				}
				else if (cmd[0].equals("setMaxBufferLength"))
				{
					cah.setMaxBufferLength(Integer.parseInt(cmd[1]));
				}
				else if (cmd[0].equals("remove"))
				{
					System.out.println("" + cah.remove(cmd[1]));
				}
				else if (cmd[0].equals("clear"))
				{
					cah.clear();
				}
			}
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频永久免费| 久久蜜桃av一区精品变态类天堂 | 亚洲午夜久久久久久久久电影网 | 亚洲图片另类小说| 日韩亚洲欧美中文三级| 91蜜桃传媒精品久久久一区二区| 麻豆91免费观看| 亚洲精品国产成人久久av盗摄| 亚洲成av人片在www色猫咪| 久久久电影一区二区三区| 51精品秘密在线观看| 一本一本久久a久久精品综合麻豆| 国产呦精品一区二区三区网站| 日本在线不卡视频一二三区| 亚洲精品国产高清久久伦理二区| 亚洲国产高清在线观看视频| 精品成人一区二区| 欧美一卡二卡在线| 欧美日韩视频在线观看一区二区三区 | 一区二区三区四区不卡视频| 国产精品麻豆网站| 久久精品欧美日韩| 精品国产三级电影在线观看| 在线观看91av| 欧美日韩色一区| 欧洲人成人精品| 色94色欧美sute亚洲线路二 | 精品久久人人做人人爰| 在线播放91灌醉迷j高跟美女| 91丝袜美女网| 不卡的av在线| 99久久er热在这里只有精品15 | 精品99久久久久久| 91天堂素人约啪| 韩国女主播一区二区三区| 在线电影院国产精品| 日本美女一区二区| 成a人片亚洲日本久久| 中文字幕va一区二区三区| 欧美丝袜自拍制服另类| 夜夜嗨av一区二区三区网页| 欧美mv日韩mv亚洲| 欧美优质美女网站| 波多野结衣中文字幕一区二区三区 | 欧美一级一级性生活免费录像| 99视频热这里只有精品免费| 国产.精品.日韩.另类.中文.在线.播放| 亚洲一级二级三级| 亚洲成精国产精品女| 亚洲欧美日韩精品久久久久| 亚洲精品一卡二卡| 国产精品人妖ts系列视频| 欧美国产一区二区在线观看| 国产精品三级久久久久三级| 久久综合精品国产一区二区三区 | 国产一区二区三区香蕉| 狠狠色丁香久久婷婷综合_中| 美女网站色91| 国产精品一线二线三线精华| 成人高清av在线| www.日韩av| 欧美日韩电影在线播放| 日韩午夜中文字幕| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国产精品一区二区三区乱码| 在线观看亚洲专区| 91久久精品国产91性色tv| 色婷婷亚洲综合| 日韩免费看的电影| 亚洲人成网站精品片在线观看 | 亚洲不卡一区二区三区| 久久超碰97人人做人人爱| www.欧美日韩| 欧美成人福利视频| 一区二区免费在线| 精品亚洲国产成人av制服丝袜| 成人高清免费观看| 欧美mv日韩mv亚洲| 国产精品护士白丝一区av| 国产精品福利影院| 日本成人中文字幕| 色婷婷久久久亚洲一区二区三区| 日韩一区二区三区电影| 亚洲精品日日夜夜| 国产91高潮流白浆在线麻豆| 欧美在线短视频| 亚洲色图色小说| 顶级嫩模精品视频在线看| 欧美成人一区二区三区| 亚洲中国最大av网站| 在线观看一区二区视频| 中文字幕在线视频一区| 国产精品久久久久久久久晋中| 亚洲午夜私人影院| 成人白浆超碰人人人人| 中文字幕av不卡| 国产高清在线观看免费不卡| 精品国产乱码久久久久久免费 | 99精品国产99久久久久久白柏| 日韩一级精品视频在线观看| 亚洲男人电影天堂| 亚洲另类春色校园小说| 99re这里只有精品视频首页| 亚洲欧洲一区二区在线播放| 99久久久国产精品免费蜜臀| 亚洲免费观看高清完整版在线观看| 99精品久久只有精品| 一区二区免费视频| 精品免费日韩av| 成人一区二区三区视频 | 欧美另类高清zo欧美| 久久精品视频一区二区三区| 性做久久久久久| 精品999在线播放| 91浏览器在线视频| 日韩中文字幕不卡| 久久午夜色播影院免费高清| 97久久久精品综合88久久| 亚洲国产日韩精品| 国产精品电影一区二区| 国产精品福利一区二区三区| 久久国内精品自在自线400部| 欧洲另类一二三四区| 国产一区二区精品在线观看| 亚洲精品视频免费观看| 欧美电影一区二区| 日日夜夜免费精品| 国产精品嫩草影院com| 2023国产精品| 日韩欧美一二区| 久久婷婷国产综合精品青草| 日韩欧美国产一二三区| www国产成人免费观看视频 深夜成人网| 欧美草草影院在线视频| 欧美在线|欧美| 国产精品综合一区二区三区| 日韩国产欧美一区二区三区| 偷窥少妇高潮呻吟av久久免费| 亚洲一区二区三区视频在线| 伊人色综合久久天天| 亚洲午夜在线电影| 免费成人在线影院| 成人免费视频网站在线观看| 色综合激情五月| 在线综合视频播放| 欧美激情资源网| 亚洲综合免费观看高清完整版在线 | 欧美一级夜夜爽| 中文字幕乱码一区二区免费| 亚洲午夜国产一区99re久久| 精品一区免费av| 色噜噜夜夜夜综合网| 日韩欧美中文字幕一区| 国产精品美女久久久久av爽李琼 | 久久国内精品自在自线400部| 9久草视频在线视频精品| 欧美日韩一级大片网址| 亚洲国产岛国毛片在线| 日本午夜精品视频在线观看| 国产盗摄视频一区二区三区| 欧美日韩黄色一区二区| 中文字幕免费一区| 国内精品免费在线观看| 欧美绝品在线观看成人午夜影视| 久久久久久**毛片大全| 琪琪久久久久日韩精品| 欧美撒尿777hd撒尿| 亚洲精品免费在线| 91美女片黄在线观看91美女| 欧美一区二区美女| 亚洲国产裸拍裸体视频在线观看乱了| 男男视频亚洲欧美| 欧美日韩在线播放一区| 亚洲女人的天堂| 国产精品白丝jk黑袜喷水| 日韩一区二区三区免费看| 亚洲国产毛片aaaaa无费看| 91欧美一区二区| 亚洲欧美国产三级| 成人免费观看视频| 日韩美一区二区三区| 亚洲欧美日韩一区| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 精品一区二区三区免费| 在线播放91灌醉迷j高跟美女| 亚洲欧美日韩国产综合| 成人小视频在线观看| 欧美国产日韩一二三区| 国产成人h网站| 亚洲国产精品国自产拍av| 国产一区啦啦啦在线观看| 久久色.com| 国产成人亚洲综合色影视| 久久嫩草精品久久久精品| av一本久道久久综合久久鬼色| 亚洲综合色噜噜狠狠| 精品va天堂亚洲国产| 色综合天天综合| 午夜私人影院久久久久| 欧美午夜不卡视频|