Java多线程一般用法
来源:互联网 发布:用ps做淘宝主图 编辑:程序博客网 时间:2024/06/03 18:15
1.背景
如果开发并发处理的程序,就需要使用到线程池。
2.具体
2.1 说明
一般情况下,使用线程池,需要抽象一些概念来进行划分类,具体包括三个部分:
1.线程池服务(线程大小,队列大小(缓冲用),线程生命时长,饱和策略,当然还有便于识别的线程名)
2.执行器(实现了Runnable接口)
3.任务(即Task对象)
2.2 实例
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.concurrent.*;import java.util.concurrent.atomic.AtomicInteger;/** * Created by Administrator on 2017/8/17. */public class MyThreadpool { private static Logger logger = LoggerFactory.getLogger(MyThreadpool.class); public static void test0() { ExecutorService executorService = createExecutorService(); for (int i = 0; i < 10; i++) { executorService.submit(new MyExecutor0(new Task0())); } try { executorService.awaitTermination(10, TimeUnit.MINUTES); } catch (InterruptedException e) { logger.error("", e); } } /** * Thread Pool Service * @return */ public static ExecutorService createExecutorService() { ThreadFactory threadFactory = new ThreadFactory() { AtomicInteger atomicInteger = new AtomicInteger(0); public Thread newThread(Runnable r) { return new Thread(r, "给线程池起个好名字-" + atomicInteger.getAndIncrement()); } }; int corePoolSize = 1; int maximumPoolSize = 10; long keepAliveTime = 10; TimeUnit unit = TimeUnit.MINUTES; BlockingQueue<Runnable> workQueue = new ArrayBlockingQueue(1); ExecutorService executorService = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory); return executorService; } /** * Executor */ public static class MyExecutor0 implements Runnable { public Task0 task0; public MyExecutor0(Task0 task0) { this.task0 = task0; } @Override public void run() { } } /** * Task */ public static class Task0 { public void doSomethting() { //TODO 业务处理 } }}
阅读全文
0 0
- Java多线程一般用法
- Java Calendar一般用法
- Java迭代器的一般用法
- JAVA中List的一般用法
- Java学习之迭代器的一般用法
- Java中Iterator(迭代器)的一般用法
- Java中的Iterator(迭代器)的一般用法
- Java接口回调一般用法
- Java中迭代器(Iterator)的一般用法
- java迭代器的一般用法-转
- java 多线程 CountDownLatch用法
- Java多线程的用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- java 多线程 CountDownLatch用法
- spring cloud系列一 搭建配置服务器(分布式配置管理)configserver
- 新特性总结-JDK1.8
- POJ 3463 Sightseeing dijkstra
- 2506-完美网络
- 找不到类库
- Java多线程一般用法
- 神经网络入门
- 打造万能的ListView GridView 适配器
- 读取机器人反馈数据,控制机器人状态
- Oracle字符分隔函数(split)
- 超时处理器封装
- 第一次进入docker
- camera 模组(二)
- mysql 隔离级别 脏读 测试