私はJava 6とJunit 4.12を使用しています。スレッドがクラスから生成された場合、私はJUnitで検出しようとしています。私が試してみて、実行中のスレッドの一覧を取得するときに私のクラスでは、私は、私のJUnitテストでは、しかしそうスレッドがJUnitを使用して生成されたかどうかを検出するにはどうすればよいですか?
final Thread deletethirdpartyClassThread = new Thread(new Runnable(){
@Override
public void run()
{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
LOG.error(e.getMessage(), e);
}
final String threadName = "deletethirdpartyClass:" + myId;
Thread.currentThread().setName(threadName);
m_thirdpartySvc.deleteObject(myId);
}
});
deletethirdpartyClassThread.start();
のようなスレッドを生成、上記は現れません。ここでは、私は、スレッドの一覧を取得しようとしている方法です
boolean threadSpawned = false;
final Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
for (final Thread t : threadSet) {
if (StringUtils.equals(t.getName(), "deletethirdpartyClass:" + myId))
{
threadSpawned = true;
break;
} // if
} // for
スレッドの一覧を表示するためのより良い方法はありますか生み出した私は、スレッドを検出することができます別の方法がありますか?
あなたは、コンストラクタで名前を渡すことができます '新しいスレッド(実行可能、名)' – vsminkov
私はいけない」udnerstandこれは、スレッドがアクティブであるなら、私は把握どのように役立ちますかか否か。 –
スレッドを開始してその名前を割り当てるまでの遅延についての副次的なメモでした。 – vsminkov