A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© die_er 初级黑马   /  2014-3-21 08:44  /  1347 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

IterruptThread it = new IterruptThread();
                new Thread(it).start();
                new Thread(it).start();
                int i = 0;
                while(true){
                        if(i == 60){
                                it.changeBl();
                                break;
                        }
                        System.out.println(Thread.currentThread().getName()+"--main run"+i);
                        i++;
这是main函数中的,两个线程,一个while循环,这样线程和循环都会运行结果,
但为什么把while循环改成for循环后,for循环就不运行结果了,而是一直线程运行呢?
求解答

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

7 个回复

倒序浏览
线程里面也有个while循环语句
回复 使用道具 举报
么人吗:L
回复 使用道具 举报
在知道循环次数的时候两者都是可以使用的,但是你想要做的是让他一直循环的话,就要使用while循环,因为每次都需要判断。
回复 使用道具 举报
楼主改成for循环的时候是怎么写的?
建议把整个代码都贴出来
回复 使用道具 举报
leon_hm 发表于 2014-3-21 11:25
楼主改成for循环的时候是怎么写的?
建议把整个代码都贴出来


IterruptThread it = new IterruptThread();
                new Thread(it).start();
                new Thread(it).start();
               // int i = 0;
              for(int i=0; i<=60; i++){
                        if(i == 60){
                                it.changeBl();
                                break;
                        }
                        System.out.println(Thread.currentThread().getName()+"--main run"+i);
                        i++;
回复 使用道具 举报
die_er 初级黑马 2014-3-21 12:42:18
7#
die_er 发表于 2014-3-21 12:36
IterruptThread it = new IterruptThread();
                new Thread(it).start();
                ...

呵呵......搞错了for循环里i的范围搞错了,因为一个等号纠结了一上午
回复 使用道具 举报
while..true是死循环。建议你使用flag标记。找到之后可以把标记给设置成false.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马