📄 mobjectpool.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 + -