java连接池如何延迟

yuqiuyang 2007-07-07 03:23:56
做了个简易的连接池 ,今天遇到个问题 就是 测试的时候我开12个线程请求连接,池中最大是10个连接数,当线程11进入请求的时候,10连接数已经都使用了 还没有返回连接池,这时就要抛异常, 我是想让线程11再等一下,再对连接池请求,那样其他线程使用的连接对象就返回池中了

我只是想了解下,连接池的实现原理,非常感谢,分不多哈 我所有的分了!
...全文
162 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuqiuyang 2007-07-07
  • 打赏
  • 举报
回复
哈哈 终于找到办法了 先DBConnectionPool.class.wait(1000);延迟下,然后递归调用自己,
不过应该有个调用的最大次数 在这个次数内执行
if(reconn==null){
if(count<=5){
System.out.println("再次请求:"+count);
try{
DBConnectionPool.class.wait(1000);
reconn=getConn();
}catch(Exception e){
e.printStackTrace();
}
}else{
count=0;
}
}
if(reconn==null){
throw new PoolException("连接池中无可用对象");
}
yuqiuyang 2007-07-07
  • 打赏
  • 举报
回复
那有没有办法 让这个请求 延迟一下
ssnec 2007-07-07
  • 打赏
  • 举报
回复
要么wait(long n);
要么yield();

或者干脆不受理第11个线程的请求.

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧