问大家一个关于 java while 循环的问题。。
我在 main方法启动了一个多线程的任务。
等所有的线程 都执行完后,就改变isNext的状态为 true。
下面是我写的while循环 。但是所有的线程都执行完后,却没有跳出while循环,为什么呢? isNext = false;
//..........
多线程部分省略掉...............
// while (true)
{
if (isNext)
{
break;
}
}
}
可以确定是,所有启动的所有线程都执行完了。。而且isNext的状态 也改为true了。
奇怪的是,我只有在while循环中,加一个System.out.println(); 的语句,它就能跳出循环。希望有知道的朋友 说下哈
我在 main方法启动了一个多线程的任务。
等所有的线程 都执行完后,就改变isNext的状态为 true。
下面是我写的while循环 。但是所有的线程都执行完后,却没有跳出while循环,为什么呢? isNext = false;
//..........
多线程部分省略掉...............
// while (true)
{
if (isNext)
{
break;
}
}
}
可以确定是,所有启动的所有线程都执行完了。。而且isNext的状态 也改为true了。
奇怪的是,我只有在while循环中,加一个System.out.println(); 的语句,它就能跳出循环。希望有知道的朋友 说下哈
解决方案 »
- 帮看一个并发访问的问题!!!!!!!!!!!
- 用Eclipse开发Java项目,怎样调用外部接口,做Webservice
- 关于hibernate的many to many(由one to many 与 many to one组成) 关系
- 帮帮我 ,在线等
- 端口号
- tomcat 5.5.12 配置问题!~
- 在线求助,关于struts里面xml的配置问题
- 求一些经典的简体中文J2EE教学ppt!
- 那位大虾详细解释下Struct,Sprint,hiberate,EJB3.0是概念呀?
- 在j2ee_sdk1.4中,在BIN目录下怎么没有J2EE这个执行文件呢?
- java中怎样用dom4j修改xml的属性值
- struts+spring+ibatis框架搭建
这是由于运行过程中为了保证高效,变量值不是每次都从内存中获取,这就导致多个线程会有相同变量的副本问题。必须把 isNext 声明为 volatile:
private volatile boolean isNext;参见:
http://jilen.iteye.com/blog/1025199