私はマルチスレッドのアプリケーションを持っていて、setName()
プロパティで各スレッドに一意の名前を割り当てます。今、スレッドに直接アクセスするための機能が、対応する名前で必要になります。次の関数のようなスレッドを取得する
代:
public Thread getThreadByName(String threadName) {
Thread __tmp = null;
Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
Thread[] threadArray = threadSet.toArray(new Thread[threadSet.size()]);
for (int i = 0; i < threadArray.length; i++) {
if (threadArray[i].getName().equals(threadName))
__tmp = threadArray[i];
}
return __tmp;
}
上記機能は、すべての実行中のスレッドをチェックした後、スレッドを実行セットから所望のスレッドを返します。たぶん、私の希望のスレッドが中断され、上記の関数は動作しません。その機能を組み込む方法に関するアイデアはありますか?
? –
必要なスレッドを 'HashMap'の名前で保存するだけです。 –
millimoose
@ JohnVint別のクラスで作成されているスレッドなので、直接アクセスできません。 – NullPointer