⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 threadlister.java

📁 《Java 3D编程》的源代码
💻 JAVA
字号:
// This example is from _Java Examples in a Nutshell_. (http://www.oreilly.com)// Copyright (c) 1997 by David Flanagan// This example is provided WITHOUT ANY WARRANTY either expressed or implied.// You may study, use, modify, and distribute it for non-commercial purposes.// For any commercial use, see http://www.davidflanagan.com/javaexamplespackage org.selman.java3d.book.common;import java.io.*;/** * This class contains a useful static method for listing all threads * and threadgroups in the VM.  It also has a simple main() method so it * can be run as a standalone program. **/public class ThreadLister {	/** Display information about a thread. */	private static void printThreadInfo( PrintWriter out, Thread t, 		String indent )	{		if (t == null) return;		out.println( indent + "Thread: " + t.getName( ) +			"  Priority: " + t.getPriority( ) +			(t.isDaemon( )?" Daemon":"") +			(t.isAlive( )?"":" Not Alive"));	}	/** Display info about a thread group and its threads and groups */	private static void printGroupInfo( PrintWriter out, ThreadGroup g, 		String indent )	{		if (g == null) return;		int num_threads = g.activeCount( );		int num_groups = g.activeGroupCount( );		Thread[] threads = new Thread[num_threads];		ThreadGroup[] groups = new ThreadGroup[num_groups];		g.enumerate( threads, false );		g.enumerate( groups, false );		out.println( indent + "Thread Group: " + g.getName( ) + 			"  Max Priority: " + g.getMaxPriority( ) +			(g.isDaemon( )?" Daemon":""));		for(int i = 0; i < num_threads; i++)			printThreadInfo( out, threads[i], indent + "    " );		for(int i = 0; i < num_groups; i++)			printGroupInfo( out, groups[i], indent + "    " );	}	/** Find the root thread group and list it recursively */	public static void listAllThreads( PrintWriter out )	{		ThreadGroup current_thread_group;		ThreadGroup root_thread_group;		ThreadGroup parent;		// Get the current thread group		current_thread_group = Thread.currentThread( ).getThreadGroup( );		// Now go find the root thread group		root_thread_group = current_thread_group;		parent = root_thread_group.getParent( );		while(parent != null)		{			root_thread_group = parent;			parent = parent.getParent( );		}		// And list it, recursively		printGroupInfo( out, root_thread_group, "" );	}	/**	* The main() method:  just print the list of threads to the console	**/	public static void main( String[] args )	{		PrintWriter out = new PrintWriter( new OutputStreamWriter( System.out ) );		ThreadLister.listAllThreads( out );		out.flush( );	}	/**	* This nested class is a simple applet that displays the output of	* ThreadLister.listAllThreads() when run from an the start() method of	* an applet.  The output from an applet is typically different than the	* output when run from a standalone program.	**/	public static class Applet extends java.applet.Applet	{		java.awt.TextArea textarea;  // Where to display the output.		/** Create a text area to put our listing in */		public void init( )		{			textarea = new java.awt.TextArea( );			this.setLayout( new java.awt.BorderLayout( ) );			this.add( "Center", textarea );		}		/** When the applet starts, list all the threads */		public void start( )		{			StringWriter sout = new StringWriter( );  // Capture listing in a string			PrintWriter out = new PrintWriter( sout );			ThreadLister.listAllThreads( out );			out.flush( );			textarea.setText( sout.toString( ) );       // Display the listing		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -