【发布时间】:2012-06-06 19:34:23
【问题描述】:
如果我创建一个实现 Runnable 的对象,并用它启动一个线程...
ArrayList<Thread> threadlist = new ArrayList<Thread>();
{
MergeThread mmt = new MergeThread();
Thread t = new Thread(mmt);
threadlist.add(mmt);
t.start();
}
t.join();
Thread t = threadlist.get(0);
此时 mmt 保证存在,或者如果垃圾收集得到它,它可能已经消失。
我要问的是 Thread 对象在线程结束后是否保留了 Runnable 类。
编辑:上面应该说有一个错误 线程列表.add(t);
【问题讨论】:
-
据我所知,一旦线程结束,对象就会超出范围,除非另一个对象正在引用它。
-
代码似乎无效,因为在您执行 t.join() 的地方没有 t inscope。
标签: java multithreading