我在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次终止后,再单击开始运行时,不好使了.我想是不是当终止线程后,这个线程就消失了,再使用时,应该重新建立一个呢,我按照这个想法做,还不行,本人是新手,请高手帮助解答这两个问题.谢谢啊.
{
while(true)
{
Thread s=new Thread(this); /添加一个新的线程
s.start();
try
{a.sleep(300);}
catch(InterruptedException e)
{return;}
}
}
这就是一个大致的思路,但是添加了这些线程运行后,应该在RUN方法里怎样定义呢,是对当前的线程分别判断吗??还有另外一个问题:有两个按钮,一个负责运行线程,另外一个负责终止线程,当第1次终止后,再单击开始运行时,不好使了.我想是不是当终止线程后,这个线程就消失了,再使用时,应该重新建立一个呢,我按照这个想法做,还不行,本人是新手,请高手帮助解答这两个问题.谢谢啊.
解决方案 »
- 急急!!!vmware安装了linux但是无法上网,我的windows使用的代理服务器上网?
- 如何读取这个文件(菜鸟级问题)
- swt designer调用flash控件的问题
- 求一正则表达式
- Applet如果用到其他包了,如果要發布道網上,瀏覽器那端如果沒有裝jre怎麼辦?
- paint(Graphics g)函数为什么自动会执行啊?
- ping问题
- 不知为何错误!输入字符传入setBackground(Color.white)设定颜色。帮忙!帮忙!
- java中如何求得某月某周的第一天和最后一天
- 求救:SAXParserFactory saxFact = SAXParserFactory.newInstance();错误
- 一名合格的java程序员需要哪些技术??????
- j2se问题??
2 没看懂 if(Thread.currentThread()==a) 的真正意图,如果是判断某个特定线程的话,那么那些新启动的线程,刚启动,马上就终止了。
3 线程终止了,当然得重新启动了。
第二个问题:
按运行按钮就 new 一个Thread,然后在这个Thread的run方法中这样写:try{while(condition) { work to do }} finally{condition = true} 在终止按钮中写condition=false就可以了,
因为你每个new出来的thread还自己在不断的new thread。。