Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I have a multithreaded application and I assign a unique name to each thread thr

ID: 3537913 • Letter: I

Question

I have a multithreaded application and I assign a unique name to each thread through setName() property. Now, I want functionality to get access to the threads directly with their corresponding name. Somethings like the following example : public Thread getThreadByName(String threadName) { Thread __tmp = null; Set 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; } The above function checks all running threads and then returns the desired thread from the set of running threads. Maybe my desired thread is interrupted, then the above function won't work. Any ideas on how to incorporate that functionality?

Explanation / Answer

You can find all active threads using ThreadGroup:

The value of doing this completely escapes me ... what will you possibly do with a named thread? Unless you're subclassing Thread when you should be implementing Runnable (which is sloppy programming to start with).