java线程(超时等待+简单数据库连接池)


超时等待模式在一般的等待/通知机制上添加超时控制,使得方法执行时间过长也不会一直造成阻塞,而是在一段时间后返回。

通常java连接数据库时会将其执行过程交由一个线程进行处理,使得在一些I/O操作或需要一定时间运行的行为在后台运行而客户端能立刻对当前的动作做出下一个反应。例如客户端的文件下载上传等往往另开一个线程,而主程序继续监听将要发生的动作,在与数据库交互时,每个用户获得一个专属的线程对其需要的内容进行修改和同步,在并发量较低的情况下,当然可以依次new出一个线程来,但一旦加大了用户数量,或用户频繁地进行操作时,服务端反复创建和回收也会造成比较大的开销,加大系统的负载。(且通常会有很多一些小操作需要服务端快速地进行处理)

线程池的技术能比较合理地解决此问题,预先创建一定量的线程,不由用户对线程直接进行创建控制,而是争取资源获得复用线程进行操作。可以消除频繁创建和消亡所带来的开销(具体线程量和执行速度与多因素有关,在实际使用时应该视情况而定)。

等待超时的模式如下:(伪代码)

//同步对象锁

public synchronized Object get(long mills) throws InterruptedException{

  long remaining=mills;

  long future=System.currentTimeMills()+mills;

......

...

 while((result==null)&&remaining>0){

wait(remaining);

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值