为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

3 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

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

查看完整回答
反对 回复 2022-05-23
?
Qyouu

TA贡献1786条经验 获得超11个赞

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

查看完整回答
反对 回复 2022-05-23
?
慕娘9325324

TA贡献1783条经验 获得超5个赞

public void run() {
while(控制){ 一般是改变这个的吧

查看完整回答
反对 回复 2022-05-23
  • 3 回答
  • 0 关注
  • 273 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号