求助:JAVA里如何让一个方法延迟5秒才执行?

水番丘山 2014-05-04 01:21:01
我想让一个方法延迟一段时间在执行它,请问有什么比较有效的方法呢?
比如:public void methodA(){
if(true){
//延迟5秒执行
methodB;
return;
}
do something;
}

private void methodB(){
do something;
}
...全文
86531 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
levelnini 2014-05-07
  • 打赏
  • 举报
回复
必须是线程啊。线程运行完毕之后就可以被GC了,不用担心内存或者服务器。除非你的并发数很庞大
水番丘山 2014-05-07
  • 打赏
  • 举报
回复
楼上的 如果是不是这个方法每调用一次就要new一次timer呢?或者说内存中只存在一个timer?如果我成千上百次的调用这个方法呢?或不会引起内存溢出或者服务器压力问题呢?
ljr1007tom 2014-05-07
  • 打赏
  • 举报
回复
直接用线程啊!
xuhu_it 2014-05-07
  • 打赏
  • 举报
回复

try
{
    Thread.sleep(5000);
}
catch (InterruptedException e)
{
    e.printStackTrace();
}
ftfwfd 2014-05-05
  • 打赏
  • 举报
回复
try { Thread.sleep (n ) ; } catch (InterruptedException ie){ } n为毫秒数
tony4geek 2014-05-05
  • 打赏
  • 举报
回复
p109427 2014-05-05
  • 打赏
  • 举报
回复
Thread.sleep(5000);//不可以实现吗??
水番丘山 2014-05-05
  • 打赏
  • 举报
回复
那意思是必须得添加一个线程进行处理这个延迟咯。
昵称全存在 2014-05-05
  • 打赏
  • 举报
回复
先建一个Timer,和一个任务类 task 并继承类TimerTask; Timer t=new Timer(); task tt=new task(); 最后用schedule控制执行时间: t.schedule(tt,5000);//5000单位是毫秒=5秒 补充:类 task的写法: class task extends TimerTask(){ //必须实现方法run() public void run(){ //里面写你要在5秒后执行的代码。 } }
S117 2014-05-04
  • 打赏
  • 举报
回复
将你要延迟运行的代码封装到一个TimerTask中,然后用Timer中的schedule(TimerTask task, long delay) 方法执行!
_平凡的自我_ 2014-05-04
  • 打赏
  • 举报
回复

try
{
    Thread.sleep(5000);
}
catch (InterruptedException e)
{
    e.printStackTrace();
}
lewis219 2014-05-04
  • 打赏
  • 举报
回复
Thread.sleep(5000);
soyestrellafortuna 2014-05-04
  • 打赏
  • 举报
回复
Timer定时器应该是可以

51,402

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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