急,关于线程的销毁的问题-求教! 安道理java虚拟机是可以自动回收的!好像没有什么特别的方法!表示关注!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不明白,只要线程从run()里退出,线程就销毁了如果线程还没有运行完,就象从外部停止它,否则线程是不会被回收的 while(true){if(num=20){num=0;}myth[num]=new Thread(threadclass);num++;}你的这个循环可以退出吗???不能退出的话就算只一个也不能销毁。你这样用它会覆盖上次的一个线程对象,原来的也就不用你管了,你想再调用原来的线程也是不可能的。 那如果我用myth[num].destroy();那么下一次我还能不能myth[num]=new Thread(threadclass);好像不行吧,楼上的说要将线程丛run()里面退出,我该怎么推出,可以不影响让同一个myth[num]重新构造? 你试过了的吗???为什么说不行???如果你的循环是在run()方法里,就不用退出了。不过我还是不懂你这段代码的意思,构建20个MyThreadClass干嘛???你又没有让这些线程运行。你应该把你想要作的说清楚。 本来java虚拟机的自动回收功能都是不定时的进行的,要强制执行的话,就调用System类中的静态方法gc(),但这样不能保证回收对象内存。 public void run(){while(sss)//sss=false时会发生什么事情{...}} sss=false的话,应该不执行while里面的语句吧!怎么? 让线程退出的办法,我感觉最好的就是下面这样public MyThread extends Thread{ private boolean running = true; public void run(){ while(running){ //这里放入线程的执行处理 } } public void stopThread(){//设置一个函数stopThread,用来停止线程 running = false;//将running=false,程序的run()中的while循环会退出,线程死亡 }} 我也不明白你的代码,如果线程运行完后,会自动销毁,使用join()就可等待线程的结束,如果采用外来的停止线程就需要根楼上的一样去操作,使用全局变量。 帮忙-------------:发现错误如下:if(num=20)//need ==while(true)//there have no end 用正则表达式截取字符串 java 热键OR快捷键OR总之各种键 各位大虾,为什么我的TOMCAT启动不了啊? 关于面向对象的一个小问题~ 求救,为何在窗口中没有“I love you!”?请您指教。 java程序的美观问题…… 初始化块和静态初始化块的区别 关于布局管理器CardLayout的问题(高分相送) 急救100分,JBuilder 6 的注册码 请问如何安装jsse?谢谢 多种数据类型数据写入文件后读出问题 如何不用J2SE进行数字签名
如果线程还没有运行完,就象从外部停止它,否则线程是不会被回收的
if(num=20){
num=0;
}
myth[num]=new Thread(threadclass);
num++;
}
你的这个循环可以退出吗???不能退出的话就算只一个也不能销毁。
你这样用它会覆盖上次的一个线程对象,原来的也就不用你管了,你想再调用原来的线程也是不可能的。
如果你的循环是在run()方法里,就不用退出了。不过我还是不懂你这段代码的意思,构建20个MyThreadClass干嘛???你又没有让这些线程运行。你应该把你想要作的说清楚。
{
...
}}
public MyThread extends Thread
{
private boolean running = true;
public void run(){
while(running){
//这里放入线程的执行处理
}
}
public void stopThread(){//设置一个函数stopThread,用来停止线程
running = false;//将running=false,程序的run()中的while循环会退出,线程死亡
}
}
if(num=20)//need ==
while(true)//there have no end