java 等待一秒方法

一个thread调用这个方法后就等待1s,同时要让原来的thread继续响应publicvoidwait1s(){Threadt=null;t=newThread(thi... 一个 thread 调用这个方法后就等待1s,同时要让原来的thread继续响应

public void wait1s() {

Thread t = null;
t = new Thread(this);
t.start();
try {
t.sleep(1000);
} catch (InterruptedException e) {
}

}

会让界面卡死
展开
 我来答
匿名用户
推荐于2017-09-26
展开全部
sleep是静态方法,它的调用会引起所有进程的休眠。

在等待的进程中执行notify()和wait()方法,在外面的进程计时,执行够一秒的时候放弃cpu,让之前的线程执行
更多追问追答
追问
听起来有道理,有没有示例代码,wait()   api看不懂
追答

多个线程共享一个锁,如main方法所在的类MainClass的一个对象A.

  
 public void run() {

 synchronized(A)//锁住
{
       notifyAll();//唤醒其他线程
   while(true)
   {
   //你的代码
       try {
           A.wait(1000);
       } catch (InterruptedException e) {
      }
}
   }
}
}


       

pieryon
推荐于2017-09-17 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166868
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
java中等待用线程的sleep方法,写法如下:
try {
Thread.sleep(1000); //1000 毫秒,也就是1秒.
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-10-25
展开全部
已经启动的线程是不可以在外部调用sleep暂停的,只能通过控制线程内部的标签来使其暂停。
比如你可以在外部声名一个变量,在线程内部执行中判断这个变量的值,如果需要暂停,修改这个变量即通知该线程暂停。
更多追问追答
追问
不能调用外部sleep 的话,如何让一个循环每秒循环一次,同时不锁死界面,我把
t = new Thread(this);
t.start();
try {
t.sleep(1000);
} catch (InterruptedException e) {
}
加到循环内部还是会锁死界面
追答
Thread.sleep(1000);

在线程内部用Thread.sleep();

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式