Java多线程之线程池使用
来源:互联网 发布:恒宝充电器淘宝店 编辑:程序博客网 时间:2024/05/16 18:58
本文介绍在Java中如何使用线程池。阅读本文内容,读者需要对多线程及线程池的知识有所了解,对Java线程池的创建及Executors, ExecutorService关键类有所接触。关于这些方面的知识,可以参阅作者的前篇文章。
关键类和方法
创建Java线程池所需要的两个基本类:Executors和ExcecutorService类。
Executors类
Executors是一个工厂类,提供了一系列工具方法创建ExecutorService或其子类。
ExecutorService类
ExecutorService线程池能够被关闭,这时它将拒绝新的任务请求。它有两个方法用于关闭线程池。它的shutdown方法允许已经提交的任务在终止前执行,而shutdownNow方法则会阻止等待的任务启动并且尝试停止正在执行的任务。一个不再使用的ExecutorService线程池应该被关闭以便重新分配它所占用的资源。
Submit方法
方法submit继承于方法execute方法,它能够创建并返回一个Future对象,用于取消执行和(或)等待完成。英文原文:Method submit extends base method Executor.execute(Runnable) bycreating and returning a Future that can be used to cancel execution and/orwait for completion.
使用范例
下面引用官方文档的使用范例。
下面一个网络服务的构架。线程池中的线程用于处理传入的请求。它使用预先设定的Executors.newFixedThreadPool
工厂方法:
class NetworkService implements Runnable { private final ServerSocket serverSocket; private final ExecutorService pool; public NetworkService(int port, int poolSize) throws IOException { serverSocket = new ServerSocket(port); // 创建一个固定线程数量的线程池处理网络请求 pool = Executors.newFixedThreadPool(poolSize); } public void run() { // run the service try { // 创建一个循环处理不断到来的网络请求 for (;;) { // accept为阻塞方法。每收到一个新的网络请求,则继续执行 // 对每个新的网络请求,将其加入线程池中等待执行 pool.execute(new Handler(serverSocket.accept())); } } catch (IOException ex) { pool.shutdown(); } } }// 对网络请求的实际处理 class Handler implements Runnable { private final Socket socket; Handler(Socket socket) { this.socket = socket; } public void run() { // read and service request on socket } }}
本示例来源于官方文档。感兴趣的小伙伴可以下载Oracle的JDK文档深入挖掘。
0 0
- Java多线程之线程池使用
- Java多线程之线程池
- Java多线程之线程池
- java多线程之线程池
- Java多线程之线程池
- Java多线程之线程池
- JAVA多线程之线程池
- java多线程 线程池使用
- 我之见--java多线程 线程池使用
- (四) Java多线程详解之线程池的使用
- 浅析java多线程之线程初使用
- Java多线程基础之线程使用
- Java多线程之线程池深入分析
- Java多线程之线程池(一)
- Java多线程之线程池(二)
- Java多线程之线程池(三)
- Java多线程之线程池(四)
- Java多线程之线程池(五)
- ngnix笔记
- 经常遇到的一个问题是 MFC中开启多线程后 在非主线程中使用updata函数出现崩溃的情况。
- 春节如何应对三姑六婆严词拷问!
- 【牛客网】网易2017内推笔试编程题合集(二)
- (现实项目管理神器) jira使用介绍
- Java多线程之线程池使用
- rabbitmq基础
- html 使用 Jquery 懒加载 与 webp 整合优化
- 《马克思主义与社会科学方法论》知识梳理
- Ubuntu GPG 加密邮件
- 原生上传file 预览图片转码base64
- 行业整体走势趋稳 未来合规转型成主流
- ngnix和lvs比较
- JAVA培训注重趣味引导 尚观推出免费体验活动