简单地可以使用 Thread.join() 方法来等待线程结束,例如这样修改一下:
神木网站建设公司成都创新互联,神木网站设计制作,有大型网站制作公司丰富经验。已为神木上千提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的神木做网站的公司定做!
Thread t = new Thread() {
// 同原来的 run()
};
t.start();
// 调用这个方法,会挂起当前线程直至线程t结束
t.join();
join()方法的文档是这么写的: Waits for this thread to die.
也可以用wait/notify或mutex等机制来对两个线程进行同步,稍微复杂一点,例如使用 wait/notify:
new Thread() {
public void run() {
// 同原来的代码,加上以下代码用于同步
synchronized (results) {
results.notifyAll();
}
}
}.start();
// 通过以下代码挂起当前线程,等待其他线程通知
synchronized (results) {
results.wait();
}
以供参考。
同 i178269245 所说,等待线程结束势必要挂起当前线程,也就没必要用线程了,也许需要重新考虑一下这种实现方式。
int maxCount = 2;
int currentCount = 0;
while(currentCount maxCount){
int code = httpConnect.getResponseCode();
if (code != 200){ // 请求不成功
currentCount++;
Thread.sleep(3000);// 等待3s
}
}
使用java的线程同步机制。
现在存在两个线程a和b,伪代码如下:
在a的代码中:
b.start();//启动b线程
synchronized(b) b.wait();//a线程中采用同步,并进行等待
c.execute();
在b线程结束时调用synchronized(this) notify();
这样就可以达到b不结束,a线程就不会继续执行c。
注释:如果看不明白建议先学习一下java线程同步机制。
给你个简单的思路吧,你可以定义一个boolean变量,默认是false,当点下按钮以后,通过点击事件这个变量的值改成true;
private isRun =false;
pubilc void method(){
while(true){
if(isRun){
//执行你的代码
break;
}
}}
java中使用用线程控制Task任务,启动下面的线程就可以了,new Thread(new Task()).start() ;public class
Task implements Runnable {//新建一个任务
private TextArea textArea;
public Task(TextArea textArea){
this.textArea = textArea;
}
public void run() {
while (true) {
this.textArea.setText("这里设置: 输出的一段文字");
try {
Thread.sleep(500); // 这里设置:隔多长时间
} catch (Exception e) {
e.printStackTrace();
}
}
}
}