怎么使一个线程休眠? 然后在在需要的时候唤醒? 怎么使一个线程休眠? 然后在在需要的时候唤醒?类是继承Thread的,或有什么其他好的方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 wait()和notify()不过要在同步的状态下 自己sleep,睡饱了自然会醒的 Thread 类中的方法 。。 也可以用其对象的VISIBLE 属性 设为FALSE 时 停止,TRUE时运行。 suspend()让它挂着休眠,行不行? wait()+notify()||notifyAll()其他方法都是deprecated的 在课件里找到的,你看看有没有用:等待(sleep, wait, notify, notifyAll)sleep, 不出让其资源(锁)sleep(最少睡眠时间)Thread中定义wait,释放其所控制的资源(锁)(suspend())wait(最少等待时间) //等待,直到其他线程调用notify()/notifyAll() ,或时间到wait() //等待,直到notify/notifyAllObject中定义notify/notifyAll, 通知一个或所有等待线程 (resume())Object中定义 wait必须是在synchronized关键字中调用,否则不起作用! 在需要唤醒的时候实例化一个对象不行吗?或者需要有个线程对象一直跑着,直到被“唤醒”,才做一些事情。(这里的“唤醒”是被传递或接收到了一个消息的意思)楼主的需求再描述清楚点就好了。good luck 用sleep()啊,它里面可以传入参数的,就是指睡觉的时间啊.里面的参数是毫秒啊sleep(1000);//1秒后醒过来 你的终止休眠的条件是什末?如果是时间,用sleep 好了如果是其他的,可以用IO,或socket来使线程等待,然后从另外一个进程写这个socket来启动它。 原来是用sleep(5*1000)的,只有一个线程. 在线程的run中原来是一直要检查数据库的,现在要sleep下去,知道有其他对象通知它从新去检查数据库,就是唤醒的意思,不知道明白了没有? 1. while( !shouldStop ){ // scan database .. Thread.sleep( 5 * 1000 );}2.Object alert = ..线程SCANNER.while( !shouldStop){ // scan database. alert.wait(); // 等。}线程 ALERT : if( /* 打雷了,下雨了,快收衣服 ^_^ */ ){ alert.notifyAll();} 还是用wait()和notify()这个是比较好的方法! 在其他的类中获得这个线程的引用就可以了,线程中提供可以执行notify的方法 //恢复已经暂停的线程 public synchronized void xxxxx() { this.notify(); }这样在其他的类中执行这个线程引用中的xxxx方法就可以了 可变参数的问题 jpanel添加图片的问题 (菜)cmd命令如何把Myapplication.java(我编写的java程序)转成exe文件啊? 为什么下载的JDK6.0 双击打不开啊? 线程怎么控制/ 界面布局问题 邮件传输的问题 收藏帖--Servlet、Jsp性能优化 作者:Rahul Chaudhary ,gagaghost 翻译 rmi 在不同的机器上运用问题 关于available方法,read()方法会出现 阻塞问题 我写好了一个连接数据库的类 但是在jdk下编译时 他报的找不到sqlserver驱动器的错误 谁能告诉我那里有JXL包下载?
也可以用其对象的VISIBLE 属性 设为FALSE 时 停止,TRUE时运行。
让它挂着休眠,行不行?
其他方法都是deprecated的
等待(sleep, wait, notify, notifyAll)
sleep, 不出让其资源(锁)
sleep(最少睡眠时间)
Thread中定义
wait,释放其所控制的资源(锁)(suspend())
wait(最少等待时间) //等待,直到其他线程调用notify()/notifyAll() ,或时间到
wait() //等待,直到notify/notifyAll
Object中定义
notify/notifyAll, 通知一个或所有等待线程
(resume())
Object中定义
(这里的“唤醒”是被传递或接收到了一个消息的意思)楼主的需求再描述清楚点就好了。good luck
如果是其他的,可以用IO,或socket来
使线程等待,然后从另外一个进程写这个socket来启动它。
while( !shouldStop ){
// scan database ..
Thread.sleep( 5 * 1000 );
}2.
Object alert = ..
线程SCANNER.while( !shouldStop){
// scan database.
alert.wait(); // 等。
}线程 ALERT :
if( /* 打雷了,下雨了,快收衣服 ^_^ */ ){
alert.notifyAll();
}
这个是比较好的方法!
//恢复已经暂停的线程
public synchronized void xxxxx()
{
this.notify();
}这样在其他的类中执行这个线程引用中的xxxx方法就可以了