All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hfg.util.ThreadUtil Maven / Gradle / Ivy

There is a newer version: 20240423
Show newest version
package com.hfg.util;


//------------------------------------------------------------------------------

import java.util.ArrayList;
import java.util.List;

/**
 Thread-related utility functions.
 
@author J. Alex Taylor, hairyfatguy.com
*/ //------------------------------------------------------------------------------ // com.hfg XML/HTML Coding Library // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com // [email protected] //------------------------------------------------------------------------------ public class ThreadUtil { //-------------------------------------------------------------------------- public static void sleep(long inMilliseconds) { try { Thread.sleep(inMilliseconds); } catch (InterruptedException e) { // Ignore } } //-------------------------------------------------------------------------- public static ThreadGroup getThreadRoot() { // Wander up the thread group hierarchy to the top group ThreadGroup rootGroup = Thread.currentThread().getThreadGroup(); ThreadGroup parentGroup; while ((parentGroup = rootGroup.getParent()) != null) { rootGroup = parentGroup; } return rootGroup; } //-------------------------------------------------------------------------- public static List getAllThreadGroups() { ThreadGroup rootGroup = getThreadRoot(); ThreadGroup[] threadGroupArray = new ThreadGroup[rootGroup.activeGroupCount()]; while (rootGroup.enumerate(threadGroupArray, true) == threadGroupArray.length) { threadGroupArray = new ThreadGroup[threadGroupArray.length * 2]; } List threadGroups = new ArrayList<>(threadGroupArray.length); threadGroups.add(rootGroup); for (ThreadGroup threadGroup : threadGroupArray) { if (threadGroup != null) { threadGroups.add(threadGroup); } } return threadGroups; } //-------------------------------------------------------------------------- public static ThreadGroup getThreadGroup(String inName) { ThreadGroup requestedThreadGroup = null; for (ThreadGroup threadGroup : getAllThreadGroups()) { if (threadGroup.getName().equals(inName)) { requestedThreadGroup = threadGroup; break; } } return requestedThreadGroup; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy