菜鸟题---用一个线程的两个按钮控制另一个线程的wait()和notify() ,程序如下,实现不了 wait是使当前线程等待对象锁,是Object的方法,怎么可能使线程停止?而是使当前线程等待! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 长,没看有个办法可以实现写2个静态的boolean成员,对应要控制的2个线程,由第3个线程控制这两个成员的真假。被控制的2个线程,不停的去检查这两个值,为真的时候执行线程体,假的时候用yield()放弃执行就是了 设置一个boolean变量,不停检查这个值的值. class mythread extends Thread{ TextField text; volatile boolean wait; mythread(TextField t) { text=t; wait=false; } synchronized public void w() { synchronized(this){ wait=true; } } synchronized public void n() { synchronized(this){ wait=false; notify(); } } public void run() { for(int i=0;i<=1000;i++) { while(wait){ try{ wait(); } catch(Exception e){}; } text.setText("i="+i); try{ sleep(500); } catch(Exception e) { } } }}//this 是可以改成其它的的 楼主可能误解了wait和notify.首先这两个方法是Object的方法,但是往往又和多线程联系在一起,确实又和Thread这个类没有一定的关系,比如Thread的join方法就是调用了wait方法.但是这两个方法和Thread没有直接的关系,你不希望调用一个Thread实例的wait方法要让这个线程等待,其实是当前线程在等待这个Thread实例的同步锁(这里和其他的Object一样). java反射寻找类中方法问题 java 综测评分管理系统 socket的问题,为什么服务器端没有发消息,客户端就不能给客户端发消息呢? jsp引擎编译 急急 哭着问问题 Tomcat 6.02中运行javabean问题??? 看thinking in java时产生的一个关于弱引用和gc()机制的问题 可不可以向List里添加图标,可以的话怎么添加? 以前用jdk运行的,现在用jbuilder运行怎么不行啊?! jframe怎么去掉标题栏及最大最小化和关闭按钮? java 調試問題,謝謝 高分求两个线程的题目~~ 可以用菜单实现分开两个界面么?
有个办法可以实现
写2个静态的boolean成员,对应要控制的2个线程,由第3个线程控制这两个成员的真假。
被控制的2个线程,不停的去检查这两个值,为真的时候执行线程体,假的时候用yield()放弃执行就是了
{
TextField text;
volatile boolean wait;
mythread(TextField t)
{
text=t;
wait=false;
}
synchronized public void w()
{
synchronized(this){
wait=true;
}
}
synchronized public void n()
{
synchronized(this){
wait=false;
notify();
}
}
public void run()
{
for(int i=0;i<=1000;i++)
{
while(wait){
try{
wait();
}
catch(Exception e){};
}
text.setText("i="+i);
try{
sleep(500);
}
catch(Exception e)
{
}
}
}
}
//this 是可以改成其它的的
Thread这个类没有一定的关系,比如Thread的join方法就是调用了wait方法.
但是这两个方法和Thread没有直接的关系,你不希望调用一个Thread实例的
wait方法要让这个线程等待,其实是当前线程在等待这个Thread实例的同步锁(这里
和其他的Object一样).