我在APPLET中用Runnable接口来实现线程的操作,在现有的一个线程的基础上,想实现动态添加线程,从而实现多个线程同时运行的目的.我的思路是:在当前的线程的方法Run 中添加.if(Thread.currentThread()==a)
{
  while(true)
   {
    Thread s=new Thread(this);  /添加一个新的线程
     s.start();
     try
    {a.sleep(300);}
    catch(InterruptedException e)
    {return;}
   }
}

这就是一个大致的思路,但是添加了这些线程运行后,应该在RUN方法里怎样定义呢,是对当前的线程分别判断吗??还有另外一个问题:有两个按钮,一个负责运行线程,另外一个负责终止线程,当第1次终止后,再单击开始运行时,不好使了.我想是不是当终止线程后,这个线程就消失了,再使用时,应该重新建立一个呢,我按照这个想法做,还不行,本人是新手,请高手帮助解答这两个问题.谢谢啊.

解决方案 »

  1.   

    1 好奇怪的代码?你不怕线程不断的创建吗? 那个是一个死循环哦!
    2 没看懂 if(Thread.currentThread()==a)  的真正意图,如果是判断某个特定线程的话,那么那些新启动的线程,刚启动,马上就终止了。
    3 线程终止了,当然得重新启动了。
      

  2.   

    我回答你第二个问题,第一个问题没看懂
    第二个问题:
    按运行按钮就 new 一个Thread,然后在这个Thread的run方法中这样写:try{while(condition) { work to do  }} finally{condition = true}     在终止按钮中写condition=false就可以了,
      

  3.   

    第一个问题你的代码必定会造成虚拟机死机
    因为你每个new出来的thread还自己在不断的new thread。。