首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

关于线程的有关问题

2012-03-19 
关于线程的问题class Test implements Runnable{Thread m_thread nullTest(){m_thread new Thread(th

关于线程的问题
class Test implements Runnable
{
  Thread m_thread = null;
  Test(){
  m_thread = new Thread(this);
  m_thread.start();
  }
  public viod run(){
Thread curThread=Thread.currentThread();
while (m_thread == curThread) {
Sytem.out.println("hellword");
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("out of thread");
  }
  public static void main(String argv[]){
Test a= new Test();
  }
}
什么时间out of thread会被打印??

[解决办法]
一个线程循环调用自身的线程,你的代码会让机器over的你知道吗,呵呵,系统将会无休止地为你开辟无穷多个线程,也就是说你那个while循环根本没有机会执行到System.out.println("out of thread"); 而且你的Sytem.out.println("hellword"); 也不可能是在while循环里面被打印出来的,结果中不断出现hellword是系统开辟出来的不同进程所打印的
[解决办法]
如果是只有1个线程的话,那么是永远不会退出的,因为m_thread == curThread是永真的
如果是4个的话,回按时间状态知道剩下最后一个一直循环
[解决办法]
怎么这么怪.一直打印不出来.
[解决办法]
up
[解决办法]
m_thread == curThread是永真的,
因为在每个对象里他都是满足的

热点排行