shwq.net
当前位置:首页 >> jAvA多线程无限循环的问题 >>

jAvA多线程无限循环的问题

这个问题我建议你在while中加入一个检查的语句,比如下面的 while(true){ if(x>0){ System.out.println(x--); } System.out.println("**"); //这块地方,你可以加点什么,让程序打印出内容,用以判断 } 你这样试下后你就会发现问题的,推荐你动...

你的run()方法里面,while (isRunning == true) {}一直在运行,等于把isRunning这个变量给锁死了,所以main()方法里thread.setRunning(false);其实是赋值失败的。所以一直在循环。 你的意思是想要程序在1秒后停止对吧,while改成这样: while (i...

public class TestInterrupt {public static void main(String[] args) {MyThread mt = new MyThread();mt.start();try {Thread.sleep(1000);//1.main线程sleep,跳到mt线程。System.out.println(Thread.currentThread().getName()//4.跳回来继续...

兄弟 你的问题没看明白 每一个线程一个循环? 一个线程一直在执行 不就是一个死循环,你要一直输出就输出就好了,然后停止线程 就结束循环了

threadCount 加上锁就行了 要么是大于30 死循环了 要么是小于0死循环了。大于30那边可能性比较小,小于0那边可能性比较大。 可以在这2个地方打印日志验证一下

强制停止某个线程是不安全的,会发生不可预料的结果,只能是使用监视变量控制,改变监视变量的状态值,有循环就break,一直break到最外层循环,让线程自己停止。

估计是 你循环的次数太少了吧, B 太快的执行完了, 你试验下 1000次? 主要是改B 的循环次数

是两次200埃当一个线程运行完红线内的第一个语句,没来得及打印,被另一个线程抢先,另一个线程传入num值100的时候,sum已经是100了,那么第二个线程打印200。记住这时sum已经是200了。这时切换到第一个线程时sum是200了。因为第一个线程已经在...

如果在while循环中,不加跳出或程序无异常,是无法停止的,除非内存溢出。导致整个程序瘫掉

首先说明一下什么是同步和异步。 java同步方法简单理解就是多个任务执行同一个方法按顺序执行既等待第一次执行完成在执行下一次。 异步方法则是不需等待既不管第一次方法是否执行完成都会在此执行 同步方法所解决的问题就是比如订票系统每个座位...

网站首页 | 网站地图
All rights reserved Powered by www.shwq.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com