学习于林炳文Evankaka原创作品。出处http://blog.csdn.net/evankaka
ThreadGroup是做什么的
线程组,顾名思义,像数组一样,将多个线程放在同一个集合中进行管理。另外还有个好处便是可以准确的定位到某个线程和进行统一的异常捕获。
简单运用
//当前所运行线程所属的线程组
Thread.currentThread().getThreadGroup().getName();
//创建新的线程的时候可以指定线程组
ThreadGroup threadGroup1 = new ThreadGroup("group1");//参数为线程组名
ThreadGroup threadGroup2 = new ThreadGroup("group2");
Thread thread1 =new Thread(threadGroup1, "group1's member");
Thread thread2 =new Thread(threadGroup2, "group2's member");
Thread 构造函数
public Thread(ThreadGroup group, Runnable target) {
init(group, target, "Thread-" + nextThreadNum(), 0);
}
public Thread(ThreadGroup group, String name) {
init(group, null, name, 0);
}
public Thread(ThreadGroup group, Runnable target, String name) {
init(group, target, name, 0);
}
public Thread(ThreadGroup group, Runnable target, String name,
long stackSize) {
init(group, target, name, stackSize);
}
四个构造函数的重载
最终都是init(ThreadGroup g, Runnable target, String name,long stackSize)
其中g是所属线程组,target是runable目标,name 名字,stackSize 初始栈大小(0表示默认) [Sparc: 512, Solaris Intel: 256, Sparc 64bit: 1024 all others 0]
private void init(ThreadGroup g, Runnable target, String name,
long stackSize) {
Thread parent = currentThread();
SecurityManager security = System.getSecurityManager();
if (g == null) {
//安全检查
if (security !=