想写一个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#写的Dll(高分在线等) 面试题!在线等! 从文件读取工资信息,输出时按工资降序排列该怎么做呢? 图片加载。。。 高分求解Java和Asp交换用户登录信息的办法 如何自动生成java的文档? 初涉Java多线程,想请教各位一个有关synchronized代码块的问题! 关于JBUILDER的使用问题 200分求帮助!急! 各位大侠,知道哪有《JAVA2核心技术卷I/II》pdf电子版吗?! 关于“父类引用变量可以引用子类对象”的疑惑 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);
}
}
有质量高的代码参考?