菜鸟线程第一弹——初接触~

本菜鸟最近搞程序时,遇到了一个java编写延时函数的问题。大家可能都知道,延时函数只需要用到Thread.delay()就可以轻松搞定了,但是俺当时懵懂状态,因为以前做过一个定时器,所以想着是否可以用定时取代延时的功能呢?

首先,俺创建了一个Timer的对象:Timer timer=new Timer();

然后,在类中建立了一个timerTask的类用于实现TimerTask接口;并重写了其中的run()函数部分:

代码如下:

public timerTask implements TimerTask{

void run()

{

return ;

}

}

并在主类中使用timer.schedule()的函数,来等到一定的时间后执行task任务,而task任务又是return的,这样就达到了延时的目的,程序写到这里,还感觉心里美滋滋的~

但是实际运行起来,却发现不仅没有达到延时的目的,而且程序是执行不完的,即一直没有执行到尽头。这让我很郁闷,最后想了想,有查了查,原来timer只是开启了另一个线程,在另一个线程中执行了task的任务,所以延时是没有效果的,这是因为两个线程在时间上看是同时执行的!这也就是线程的意义所在了。

那么程序为什么执行不完呢,那时因为这个线程开启了之后还是需要关闭的,而我没有在线程中设置关闭它的方法,所以才造成了现在的情况!

恩,到现在为止问题的叙述和探索已经差不多了,菜鸟的旅行又要开始了~下次回事神马问题呢?期待中......

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值