ExecutorService使用
程序员文章站
2022-03-24 13:15:30
...
参考:[url]http://www.jz123.cn/text/0821440.html[/url]
主要就是这个类的几个方法。
类 Executors
此类中提供的一些方法有:
1.1 public static ExecutorService newCachedThreadPool()
创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。
1.2 public static ExecutorService newFixedThreadPool(int nThreads)
创建一个可重用固定线程数的线程池,以共享的*队列方式来运行这些线程。
1.3 public static ExecutorService newSingleThreadExecutor()
创建一个使用单个 worker 线程的 Executor,以*队列方式来运行该线程。
这三个方法都可以配合接口ThreadFactory的实例一起使用。并且返回一个ExecutorService接口的实例。
package com.pure;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
public class TestThreadPool {
public static void main(String args[]) throws InterruptedException {
ExecutorService exec = Executors.newFixedThreadPool(10, new MyThreadFactoy());
for (int index = 0; index < 10; index++) {
Runnable run = new Runnable() {
public void run() {
long time = (long) (Math.random() * 1000);
System.out.println("Sleeping " + time + "ms" + "/" + Thread.currentThread().getName());
try {
Thread.sleep(time);
} catch (InterruptedException e) {
}
}
};
exec.execute(run);
}
// must shutdown
exec.shutdown();
}
}
class MyThreadFactoy implements ThreadFactory {
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
return t;
}
}
主要就是这个类的几个方法。
类 Executors
此类中提供的一些方法有:
1.1 public static ExecutorService newCachedThreadPool()
创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。
1.2 public static ExecutorService newFixedThreadPool(int nThreads)
创建一个可重用固定线程数的线程池,以共享的*队列方式来运行这些线程。
1.3 public static ExecutorService newSingleThreadExecutor()
创建一个使用单个 worker 线程的 Executor,以*队列方式来运行该线程。
这三个方法都可以配合接口ThreadFactory的实例一起使用。并且返回一个ExecutorService接口的实例。
推荐阅读
-
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题_javascript技巧
-
Python使用dis模块把Python反编译为字节码的用法详解
-
Knockout text绑定DOM的使用方法_基础知识
-
devstack安装使用openstack常见问题与解决办法_MySQL
-
使用PHPMyAdmin修复论坛数据库的图文方法_php实例
-
Android 入门第十讲02-广播(广播概述,使用方法(系统广播,自定义广播,两个activity之间的交互和传值),EventBus使用方法,数据传递,线程切换,Android的系统广播大全)
-
mysql使用status命令测试/判断数据库是否连接
-
php生成数组的使用示例_PHP教程
-
《C++ Primer Plus 第六版》学习笔记:第十一章 使用类
-
有关帮助使用的5篇文章推荐