当前位置: 首页>后端>正文

线程池:newFixedThreadPool

线程池:newFixedThreadPool,第1张

/**

?*

*背景:

*经常创建和销毁线程,消耗特别大的资源,比如并发的情况下的线程,对性能影响很大。

*线程池就是问题为了解决这个问题,提前创建好多个线程,放在线程池中,使用时直接获取,使用完放回线程池中,可以避免频繁的创建、销毁,实现重复利用。

?*

*优点:

*提高相应速度(减少创建线程的时间)

*降低资源消耗(重复利用线程池中的线程,不需要每次都创建)

*便于线程管理:corePoolSize:核心池的大小。maximumPoolSize:最大线程数。keepAliveTime:线程没有任务时最多保持多长时间后终止。

?*

*线程池相关的API:ExecutorService:线程池接口。

*常见的实现类:ThreadPoolExecutor。

?*

* void execute(Runnable command):执行任务命令,没有返回值,一般用来执行Runnable.

?*

* Future submit(Callable task):执行任务,有返回值,一般用来执行Callable

?*

* void shutdown():关闭连接池

?*

* Executors:工具类,线程池的工厂类,用来创建并返回不同类型的线程池

?*

?*/

public class MyPool {

????public static void main(String[] args) {

// 1、创建服务,创建线程池

????????ExecutorService service = Executors.newFixedThreadPool(10);

????????MyThread myThread = new MyThread();

//执行

????????service.execute(myThread);

????????service.execute(myThread);

????????service.execute(myThread);

????????service.execute(myThread);

????????service.execute(myThread);

????????service.execute(myThread);

????????service.execute(myThread);

????????service.execute(myThread);

????????service.execute(myThread);

????????service.execute(myThread);

????????service.execute(myThread);

//关闭连接

????????service.shutdown();

????}

}

//演员

class MyThread implements Runnable {

????@Override

????public void run() {

????????while (true) {

????????????System.out.println(Thread.currentThread().getName());

????????}

????}

}


https://www.xamrdz.com/backend/3q61941108.html

相关文章: