⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mobjectpool.java

📁 httptunnel.jar httptunnel java 源码
💻 JAVA
字号:
package net.jumperz.util;

import java.util.*;

public class MObjectPool
{
private LinkedList objectQueue = new LinkedList();
private LinkedList threadQueue = new LinkedList();
//--------------------------------------------------------------------------------
public void addToPool( Object o )
{
objectQueue.addLast( o );
}
//--------------------------------------------------------------------------------
public Object getObject()
{
while( true )
	{
	synchronized( objectQueue )
		{
		if( !objectQueue.isEmpty() )
			{
			Object o = objectQueue.getFirst();
			objectQueue.removeFirst();
			return o;
			}
		}

	Thread currentThread = Thread.currentThread();
	
	synchronized( threadQueue )
		{
		threadQueue.addLast( currentThread );
		}
	
	synchronized( currentThread )
		{
		try
			{
			currentThread.wait();
			}
		catch( InterruptedException e )
			{
			e.printStackTrace();
			return null;
			}
		}
	}
}
//--------------------------------------------------------------------------------
public void returnObject( Object o )
{
synchronized( objectQueue )
	{
	objectQueue.addLast( o );
	}

Thread wakenedThread = null;
synchronized( threadQueue )
	{
	if( threadQueue.isEmpty() )
		{
		return;
		}
	wakenedThread = ( Thread )threadQueue.getFirst();
	threadQueue.removeFirst();
	}

synchronized( wakenedThread )
	{
	wakenedThread.notify();
	}
}
//--------------------------------------------------------------------------------
}

⌨️ 快捷键说明

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