线程组
线程组可以管理多个线程,顾名思义,线程组,就是把功能相似的线程放到一个组里,方便管理。
package com.guor.test;
public class ThreadGroupTest {
public static void main(String[] args) {
// 创建线程组
ThreadGroup threadGroup = new ThreadGroup("nezha");
Thread thread = new Thread(threadGroup,()->{
// 线程组名称
String groupName = Thread.currentThread().getThreadGroup().getName();
// 线程名称
String threadName = Thread.currentThread().getName();
System.out.println("groupName -- "+groupName);//groupName -- nezha
System.out.println("threadName -- "+threadName);//threadName -- thread
},"thread");
thread.start();
}
}
线程组和线程池有啥区别?
- 线程组中的线程可以跨线程修改数据,而线程组和线程组之间不可以跨线程修改数据;
- 线程池就是创建一定数量的线程,批量处理任务,当前任务执行完毕后,线程又可以去执行其它任务,通过重用已存在的线程,降低线程创建和销毁造成的消耗;
- 线程池可以有效的管理线程的数量,避免线程的无限制创建,线程是很耗费系统资源的,动不动就会产生OOM,并且会造成cpu过度切换,也有强大的拓展功能,比如延时定时线程池