我建了两个线程来执行,通过一个按钮来启动两个线程,执行完一次后再次执行的时候出现以下错误:
java.lang.illegal thread state exception
我已经在run方法里的最后位置写上了return来释放这两个线程,为什么还会出现这个错误呢?
java.lang.illegal thread state exception
我已经在run方法里的最后位置写上了return来释放这两个线程,为什么还会出现这个错误呢?
解决方案 »
- 小弟求教下JAVA的题目
- 门外汉求助!!!用myeclipse8.5把程序打成jar包,有登陆界面,之后就没有显示了,求救!
- java中图像保存。见者有分!大侠们,支招!
- 怎么实现类似资源管理器那样的界面显示文件?
- 关于setSize命令放置位置不同,而造成不同效果…………
- 请教 this 的用法?
- [求助]正在自学JAVA,想找些习题来做,谁有啊?
- 在p4下安装了j2sdk-1_4_1_01-windows-i586怎么还是不能正常使用。
- 如何设置一个DAEMON线程?
- SUN新拿出的SUN ONE 具体是一个什么东西,包括什么内容?
- 关于为组件添加事件,高手们看看这是为什么?
- 几道有趣的智力题,进来看看
如果不确定线程是否中断,可以用isInterrupted()方法先判断一下,看看true还是false
Tests if this thread is alive.
//按钮事件对应的接口方法:
actionPerformed(ActionEvent e){
if (e.getSource() == submit) {
System.out.println("t1 is isInterrupted:"+t1.isInterrupted());//第二次点按钮返回false
System.out.println("t2 is isInterrupted:"+t2.isInterrupted());//第二次点按钮返回false System.out.println("t1 is Alive:"+t1.isAlive());//第二次点按钮返回false System.out.println("t2 is Alive:"+t2.isAlive());//第二次点按钮返回false t1.start();
t2.start();
}
}
public void run() {
//t1线程:改变一个标签的图标
if(Thread.currentThread()==t1) {
bar.setIcon(bar_pic1);
}
//t2线程:设置按钮的激活属性,再次改变标签的图标,输入输出流操作
if(Thread.currentThread()==t2) {
submit.setEnabled(false);
FileSafeFactory fsf = new FileSafeFactory(oFPath.getText());
if(!fsf.isExistKey())
fsf.makeKey();
Boolean sucuss = fsf.locker("en",oFPath.getText(),
eFPath.getText());
bar.setIcon(bar_pic2);
submit.setEnabled(true);
return;
}
提取了LS各位的意见,不过问题依旧