猿问

如果用户多次点启动线程,这样就会同时运行多个一样的线程?但是只需要一个就行了,该怎么解决?

private void test(){
new Thread(){
public void run() {
while(true){
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(isstop){
break;
}
i++;
System.out.println("hello");
}
};
}.start();
}
当用户点暂停的时候 isstop=true;
这样就可以了,但是有个问题,在线程执行的4s内,如果用户多次点启动线程,这样就会同时运行多个一样的线程,但只需要一个线程就可以了,不知怎么搞,难啊,帮看看
线程里做的是循环的操作 用户可以暂停循环 之后可以再次启动 循环内容可以打印字符串

郎朗坤
浏览 274回答 3
3回答

幕布斯7119047

线程加锁 ,用wait()暂停线程用notify()唤醒

Qyouu

获得用户启动线程的时间,但用户重现点击启动时,替换前面的时间

慕娘9325324

public void run() {while(控制){ 一般是改变这个的吧
随时随地看视频慕课网APP
我要回答