这种方法是否使用了大量的内存资源?
Private MyWorkerClass worker;
Private Thread myWorkerThread;
//private Thread myWorkerThread= new Thread(worker.doThisWork); // i cant do this, because i cant restart the thread when i construct it here.
public void IwantMyWorkDosomething(){
myWorkerThread= new Thread(worker.doThisWork);
myWorkerThread.start();
myWorkerThread.stopWorking(); // stop my worker class thread running;
}
public void main(){
this.IwantMyWorkDosomething();
this.IwantMyWorkDosomething();
this.IwantMyWorkDosomething();
this.IwantMyWorkDosomething();
this.IwantMyWorkDosomething();
}
我的代码正在运行,但如果我运行该方法1000次,我不确定它是否会崩溃我的程序。
答案 0 :(得分:1)
构造一个线程对象很便宜。而且,重新构建一个新的便宜。垃圾收集器将释放未使用的资源,您只需要确保您不会unnessecarilly保留对已完成的线程对象的引用。
只有当您尝试同时运行数千个线程时才会出现资源问题。但即便如此,通常不会造成瓶颈但CPU和任务调度程序的内存(即任务开始运行速度比执行速度慢)。