< prev index next >

test/jdk/java/lang/management/ThreadMXBean/ThreadLists.java

Print this page

 40 
 41     // Thread names permitted to appear during test:
 42     public static final String [] permittedThreadNames = { "ForkJoinPool", "JVMCI" };
 43 
 44     public static boolean isPermittedNewThread(String name) {
 45         for (String s : permittedThreadNames) {
 46             if (name.contains(s)) {
 47                 return true;
 48             }
 49         }
 50         return false;
 51     }
 52 
 53     public static void main(String args[]) {
 54 
 55         // Bug id : JDK-8151797
 56         // Use a lambda expression so that call-site cleaner thread is started
 57         Runnable printLambda = () -> {System.out.println("Starting Test");};
 58         printLambda.run();
 59 



 60         // get top-level thread group
 61         ThreadGroup top = Thread.currentThread().getThreadGroup();
 62         ThreadGroup parent;
 63         do {
 64             parent = top.getParent();
 65             if (parent != null) top = parent;
 66         } while (parent != null);
 67 
 68         // get the thread count
 69         int tgActiveCount = top.activeCount();
 70 
 71         // Now enumerate to see if we find any extras yet.
 72         // Ensure array is big enough for a few extras.
 73         Thread[] tgThreads = new Thread[tgActiveCount * 2];
 74         int tgNewCount = top.enumerate(tgThreads);
 75         Map<Thread, StackTraceElement[]> stackTraces = Thread.getAllStackTraces();
 76 
 77         if (tgNewCount != tgActiveCount) {
 78             System.out.println("Found different Thread Group thread count after enumeration: tgActiveCount="
 79                                + tgActiveCount + " enumerated=" + tgNewCount);

 40 
 41     // Thread names permitted to appear during test:
 42     public static final String [] permittedThreadNames = { "ForkJoinPool", "JVMCI" };
 43 
 44     public static boolean isPermittedNewThread(String name) {
 45         for (String s : permittedThreadNames) {
 46             if (name.contains(s)) {
 47                 return true;
 48             }
 49         }
 50         return false;
 51     }
 52 
 53     public static void main(String args[]) {
 54 
 55         // Bug id : JDK-8151797
 56         // Use a lambda expression so that call-site cleaner thread is started
 57         Runnable printLambda = () -> {System.out.println("Starting Test");};
 58         printLambda.run();
 59 
 60         // start a virutal thread to cause supporting threads to start
 61         Thread.startVirtualThread(() -> { });
 62 
 63         // get top-level thread group
 64         ThreadGroup top = Thread.currentThread().getThreadGroup();
 65         ThreadGroup parent;
 66         do {
 67             parent = top.getParent();
 68             if (parent != null) top = parent;
 69         } while (parent != null);
 70 
 71         // get the thread count
 72         int tgActiveCount = top.activeCount();
 73 
 74         // Now enumerate to see if we find any extras yet.
 75         // Ensure array is big enough for a few extras.
 76         Thread[] tgThreads = new Thread[tgActiveCount * 2];
 77         int tgNewCount = top.enumerate(tgThreads);
 78         Map<Thread, StackTraceElement[]> stackTraces = Thread.getAllStackTraces();
 79 
 80         if (tgNewCount != tgActiveCount) {
 81             System.out.println("Found different Thread Group thread count after enumeration: tgActiveCount="
 82                                + tgActiveCount + " enumerated=" + tgNewCount);
< prev index next >