想写一个java对象池,有无代码可参考 想想很容易,写以来就难了,主要是多线程调用的问题。对象类型已定,就不用泛型了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public interface IPoolable extends IObject{ IPoolX getPool(); void lock(); boolean isLocked(); void unlock(); String getPoolContext();}public interface IPoolX{ public ObjectInitialContext getObjectContext(); public IPoolable getInstance(); public IPoolable newInstance(boolean freeObject); public void resetObjectContext(); public void freeInstance(IPoolable obj); public String getXElement(); public int getPoolSize(); public boolean allowNewWhenOutOfSize(); //当超出限度时能都创建新对象?} protected IPoolable getInstance(String groupID) { MyObjectList thisGroup = (MyObjectList)m_listGroup.get(groupID); while(true) { for(int i=1,n=thisGroup.size();i<=n;i++) { IPoolable IPO = (IPoolable)thisGroup.get(i); if(!IPO.isLocked()) { IPO.lock(); MyDebug.dumpConsole( "<"+this.getXElement()+">" +"("+i+")" +this.getIDII() +"{"+groupID+"}@" +IPO.getIDII() +IPO.getPoolContext() +"</"+this.getXElement()+">"); return IPO; } } MyDebug.DEBUGERROR(this,"getInstance",getIDII()+"@"+groupID+" POOL USED UP"); if(allowNewWhenOutOfSize()) return newInstance(true); } } 这应该不是java代码把。想求具体实现,多线程调用肯定会有问题。有质量高的代码参考? 怎么学习java,本人有C/C++基础!谢谢大神们指导!! 在JMenu中的几个JMenuItem中间插入分割线,如何做到? 求助!!在线等 Java rmi作业中的一个问题,兄弟们抽空看看 怎么为自定义的标签添加ActionListener检听 单元格颜色设置无效 按照字段A进行分组,而字段B取并集显示在一个字段内 成员类的外嵌类的static方法能访问成员类的变量吗?? 请看引用类的一个错误,运行是出现的 在ie里可以替换java虚拟机否 关于“父类引用变量可以引用子类对象”的疑惑 J2EE就是JSP吗??
public interface IPoolable extends IObject
{
IPoolX getPool();
void lock();
boolean isLocked();
void unlock();
String getPoolContext();
}
public interface IPoolX
{
public ObjectInitialContext getObjectContext();
public IPoolable getInstance();
public IPoolable newInstance(boolean freeObject);
public void resetObjectContext();
public void freeInstance(IPoolable obj);
public String getXElement();
public int getPoolSize();
public boolean allowNewWhenOutOfSize(); //当超出限度时能都创建新对象?
} protected IPoolable getInstance(String groupID)
{
MyObjectList thisGroup = (MyObjectList)m_listGroup.get(groupID);
while(true)
{
for(int i=1,n=thisGroup.size();i<=n;i++)
{
IPoolable IPO = (IPoolable)thisGroup.get(i);
if(!IPO.isLocked())
{
IPO.lock();
MyDebug.dumpConsole(
"<"+this.getXElement()+">"
+"("+i+")"
+this.getIDII()
+"{"+groupID+"}@"
+IPO.getIDII()
+IPO.getPoolContext()
+"</"+this.getXElement()+">");
return IPO;
}
}
MyDebug.DEBUGERROR(this,"getInstance",getIDII()+"@"+groupID+" POOL USED UP");
if(allowNewWhenOutOfSize())
return newInstance(true);
}
}
有质量高的代码参考?