有这么2段代码.
1.void run{
try {
while(bConnected){
.....................
}
}catch (IOException e) {
e.printStackTrace();
}finally{
...............................
}}
2.void{
while(bConnected){
try { .....................
}
catch (IOException e) {
e.printStackTrace();
}finally{ ...............................}
}}
注:bConnected是一个boolean变量.设为true,此代码段出现于独立线程 run方法内.
今天刚刚遇到1状态下调试通过,2状态下出现无限循环.
各位谁知道这2种方式有什么区别么?
1.void run{
try {
while(bConnected){
.....................
}
}catch (IOException e) {
e.printStackTrace();
}finally{
...............................
}}
2.void{
while(bConnected){
try { .....................
}
catch (IOException e) {
e.printStackTrace();
}finally{ ...............................}
}}
注:bConnected是一个boolean变量.设为true,此代码段出现于独立线程 run方法内.
今天刚刚遇到1状态下调试通过,2状态下出现无限循环.
各位谁知道这2种方式有什么区别么?
解决方案 »
- 怎样替换字符串
- ~~~~~~~~~~~~怎么得到一个变量的数据类型
- java与军事的抉择
- java里面怎么调用非JAVA的方法,例如调用C的MALLOC的方法,然后再用FREE去释放,这样可以解决JAVA因为没有即使释放内存而带来的问题。
- 关于println很简单的问题,俺还就是想不通,看看我这四个程序的运行结果
- 一个与myeclipse与servlet的问题
- java 输入操作 EOFException困扰好久无法解决
- 为什么我的JTabbedPane外围是一圈黑色?
- 请问int和Integer有什么区别
- 如何注销JTable的回车键?
- 关于截取页面数据插入数据库的问题!
- "TableHeader.cellBorder"-是什么
一下是我的调试类:
package test0209;public class TestThread extends java.lang.Thread{
private boolean falg = true;
public void run(){
while(falg){
try {
System.out.println(1);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally{
}
}
}
public void run_bak(){
try {
while(falg){
System.out.println(1);
}
} catch (Exception e) {
e.printStackTrace();
}
finally{
}
}
public static void main(String[] args) {
TestThread test = new TestThread();
test.start();
for(int i=0;i<10000;i++){
if(i%1000==0)
try {
test.sleep(1000);
} catch (Exception e) {
// TODO: handle exception
}
}
test.setFalg(false);
} public boolean isFalg() {
return falg;
} public void setFalg(boolean falg) {
this.falg = falg;
}
}
连个RUN方法,线程都可以停止!
后面一种方法不中止线程