谁能给我一个用线程控制循环的例子????

tzjrxy 2008-10-12 10:01:53
我刚学java不久,不是很懂,谁可以帮帮我不?
...全文
109 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang511123 2008-10-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 tzjrxy 的回复:]
谢谢楼上的给的例子~~

我现在已经可以按一个按钮开始循环,放开以后停止循环。 但是我再一次按的时候就会出现错误,下面是我的代码,请高人帮我看看

Listener 部分
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent action)
{
Object state = action.getSource();
if(state == start_stop) {
if(start_stop.isSelected()) {

[/Quote]
qq是线程吧?
询问一下,变量默认是public的吗?为啥你的Thread部分的Control变量可以在Listener中直接访问呢?另外貌似.stop()的方法没怎么用了吧?好象LZ没有把10楼的例子看明白啊
pauliuyou 2008-10-14
  • 打赏
  • 举报
回复
线程循环用布尔变量, 想中止线程,就重置变量为false
cydp007 2008-10-12
  • 打赏
  • 举报
回复
public class Star {

/**
* @param args
*/
public static void main(String[] args) {
Thread1 thread1 = new Thread1();
thread1.start();
for(int i=0;i<100000000;i++){//这里只是浪费点时间..然后把下面设置成false

}
thread1.ok=false;
}

}
class Thread1 extends Thread{
boolean ok =true;
@Override
public void run() {
while(ok){//通过ok变量控制循环.
System.out.println("ok");
}
System.out.println("while done");
}
}



To:


...//此处省略n个ok.
ok
ok
ok
while done
tzjrxy 2008-10-12
  • 打赏
  • 举报
回复
我试过了,不行,我只要按下按钮循环就一直开始,就算我加了线程也不行,到底谁可以给我一个例子啊,有没有人可以帮我,给我一个例子就可以了,我刚开始学,这样几句话回我我也看不懂,给我一个例子可不可以
qiandongbo 2008-10-12
  • 打赏
  • 举报
回复
又这帖子呀,在那帖子上我不是说的很清楚了嘛~
huguang 2008-10-12
  • 打赏
  • 举报
回复
boolean isPressed == false;
while(isPressed) {
// do something
}

一般都是由变量控制的,事件只是控制变量。
tzjrxy 2008-10-12
  • 打赏
  • 举报
回复
我用了,但是一旦进入循环就没有办法跳出循环了
lpknnkh 2008-10-12
  • 打赏
  • 举报
回复
这个应该和eventListener有关的。mousePressed 可以定义为一种事件,你在这个eventListener里再注册一个mouseRelease事件,用这两个事件来控制你的循环
tzjrxy 2008-10-12
  • 打赏
  • 举报
回复
是的,因为我想实现gui里面有个按钮,按下以后一直重复做同一个动作,放开以后他就停止这个循环,怎么做呢?
huguang 2008-10-12
  • 打赏
  • 举报
回复
让循环退出跟线程有什么关系?
ma_liang 2008-10-12
  • 打赏
  • 举报
回复
楼主的意思是:使用线程,当满足一定的条件让循环退出吗?
huguang 2008-10-12
  • 打赏
  • 举报
回复
不太明白你的意思,没法帮你
cydp007 2008-10-12
  • 打赏
  • 举报
回复
你注意下 看是不是 按了一次选中..然后放掉..


这两次过程后 最后的变量要回到 你还没按的时候..注意下. 就是初始化的状态下..这样才不会出错.

还有stop方法很早就被废弃了.

还是用其他中断的方法..interrupt() 中断线程。

tzjrxy 2008-10-12
  • 打赏
  • 举报
回复
谢谢楼上的给的例子~~

我现在已经可以按一个按钮开始循环,放开以后停止循环。 但是我再一次按的时候就会出现错误,下面是我的代码,请高人帮我看看

Listener 部分
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent action)
{
Object state = action.getSource();
if(state == start_stop) {
if(start_stop.isSelected()) {
qq.control = false;
qq.start();
}
else {
qq.control = true;
if(qq.isAlive()) {
qq.stop();
}
}
}
}
}

Thread 部分
import java.io.*;
import java.util.*;
class ThreadControl extends Thread {
boolean control = false;

public void run() {
while(true) {
System.out.println("dd");
if(control) {
break;
}
try {
sleep(2 * 1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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