java 并发 executor框架和线程池

并发编程的一种编程方式是把任务拆分为一些列的小任务,即开启线程Runnable,然后在提交给一个Executor(线程池)执行,Executor.execute(Runnalbe) 。Executor在执行时使用内部的线程池完成操作。

一、创建线程池

Executors类,提供了一系列工厂方法用于创先线程池,返回的线程池都实现了ExecutorService接口。

public static ExecutorService newFixedThreadPool(int nThreads)

创建固定数目线程的线程池。

public static ExecutorService newCachedThreadPool()

创建一个可缓存的线程池,调用execute 将重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。

public static ExecutorService newSingleThreadExecutor()

创建一个单线程化的Executor。

public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize)

创建一个支持定时及周期性的任务执行的线程池,多数情况下可用来替代Timer类。

Executor executor = Executors.newFixedThreadPool(10);
Runnable task = new Runnable() {
    @Override
    public void run() {
        System.out.println("task over");
    }
};
executor.execute(task);

或者

1 executor = Executors.newScheduledThreadPool(10);  
2 ScheduledExecutorService scheduler = (ScheduledExecutorService) executor;  
3 scheduler.scheduleAtFixedRate(task, 10, 10, TimeUnit.SECONDS);  

https://www.cnblogs.com/cyberniuniu/p/5021944.html

猜你喜欢

转载自blog.csdn.net/qq_36647209/article/details/130385343