工作中如何使用线程池的?自己如何定义一个线程池?





import java.util.concurrent.*;public class MyThreadPoolDemo {public static void main(String[] args) {ExecutorService threadPool = new ThreadPoolExecutor(2,5,1L,TimeUnit.SECONDS,new LinkedBlockingDeque<Runnable>(3),Executors.defaultThreadFactory(),//默认抛出异常
//                new ThreadPoolExecutor.AbortPolicy()//回退调用者new ThreadPoolExecutor.CallerRunsPolicy()//处理不来的不处理//new ThreadPoolExecutor.DiscardOldestPolicy()
//                new ThreadPoolExecutor.DiscardPolicy());//模拟10个用户来办理业务 没有用户就是来自外部的请求线程.try {for (int i = 1; i <= 10; i++) {threadPool.execute(() -> {System.out.println(Thread.currentThread().getName() + "\t 办理业务");});}} catch (Exception e) {e.printStackTrace();} finally {threadPool.shutdown();}//threadPoolInit();}private static void threadPoolInit() {/*** 一池5个处理线程*///ExecutorService threadPool= Executors.newFixedThreadPool(5);/*** 一池一线程*///ExecutorService threadPool= Executors.newSingleThreadExecutor();/*** 一池N线程*/ExecutorService threadPool = Executors.newCachedThreadPool();//模拟10个用户来办理业务 没有用户就是来自外部的请求线程.try {for (int i = 1; i <= 20; i++) {threadPool.execute(() -> {System.out.println(Thread.currentThread().getName() + "\t 办理业务");});try {TimeUnit.MICROSECONDS.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}}} catch (Exception e) {e.printStackTrace();} finally {threadPool.shutdown();}}
}

工作中如何使用线程池的?自己如何定义一个线程池?相关推荐

  1. java 手编线程池_死磕 java线程系列之自己动手写一个线程池

    欢迎关注我的公众号"彤哥读源码",查看更多源码系列文章, 与彤哥一起畅游源码的海洋. (手机横屏看源码更方便) 问题 (1)自己动手写一个线程池需要考虑哪些因素? (2)自己动手写 ...

  2. 深读源码-java线程系列之自己手写一个线程池

    问题 (1)自己动手写一个线程池需要考虑哪些因素? (2)自己动手写的线程池如何测试? 简介 线程池是Java并发编程中经常使用到的技术,那么自己如何动手写一个线程池呢?本文将手把手带你写一个可用的线 ...

  3. 写两个线程,一个线程打印 1~ 52,另一个线程打印A~Z, 打印顺序是12A34B...5152Z;

    写两个线程,一个线程打印 1~ 52,另一个线程打印A~Z, 打印顺序是12A34B-5152Z: 第一种方式: class Print{private int flag = 1;private in ...

  4. 写两个线程,一个线程打印1~52,另一个线程打印A~Z,打印顺序是12A34B....5152Z

    分析: 其中一个线程负责打印数字,另一个线程负责打印字母,但有一个特点就是数字刚好是字母的2倍(字母26,数字52),数字一次打印2个,字母打印一个,并且字母打印线程一定是在数字打印线程之后才打印的. ...

  5. 记录我开发工作中遇到HTTP跨域和OPTION请求的一个坑

    我通过这篇文章把今天工作中遇到的HTTP跨域和OPTION请求的一个坑记录下来. 场景是我需要在部署在域名a的Web应用里用JavaScript去消费一个部署在域名b的服务器上的服务.域名b上的服务也 ...

  6. 线程可以kill吗_我是一个线程(转)

    我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴. 我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说:"我们 ...

  7. 写两个线程,一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z

    通过这个例题学到了很多,记录下来便于以后常看,<线程通信> /** 写两个线程,一个线程打印1-52,另一个线程打印字母A-Z.打印 顺序为12A34B56C--5152Z>*/ p ...

  8. 面试题:写两个线程,一个线程打印1~26,另一个线程打印字母A-Z,交替打印数字和字母

    参考代码 public class SpringbootApplication {static class PrintRunnable implements Runnable {//定义一个锁priv ...

  9. 聊一聊工作中如何优雅的通过TDD方式来维护一个高质量的NPM包

    背景 最近一直在采用TDD(测试驱动开发)的方式来维护公司内部的一套通用业务逻辑. 既然是应用到公司实际项目中的,那就不能随随便便搭个脚手架来完成了. 调研过程中,发现TypeScript libra ...

最新文章

  1. JS下计算当前日期(当天)后N天出现NAN或者undefined的情况
  2. SQL Server 中,实现 varbinary 与 varchar 类型之间的数据转换
  3. (四)创建ROS程序包(就是软件包)
  4. androidEditTextinputType及android:imeOptions=”actionDone”(转)
  5. SpringMVC的XML配置解析
  6. 使用开源的驰骋表单设计器设计表单案例演示
  7. 【渝粤题库】陕西师范大学229011 商业银行信贷管理Ⅰ 作业(高起专)
  8. 达尔文与《物种起源》
  9. exxi6.7如何传文件到win7_win7系统被删除文件如何恢复 恢复被删除的文件操作方法【详解】...
  10. 学子商城项目用springboot后端框架搭建(IDEA)
  11. tomcat下载安装及配置【图文教程】
  12. 企业部署WAPI无线网络的技术详析
  13. 面试官:TCP和UDP两者的区别是什么?
  14. python:tushare 获取A股指数数据,并使用LSTM预测
  15. 剑网三游戏延迟太高卡顿进不去怎么处理?
  16. 游戏打的菜?当然是延迟的锅啦~
  17. matlab程序运行完后响铃,matlab基本
  18. 【云栖大会】你拿到2016杭州·云栖大会的入场券了吗?
  19. 三点水加一个必须的必
  20. 抖音直播行为规范考试

热门文章

  1. 直播平台搭建中你需要注意的小细节
  2. QTreeWidgetItem和QTreeWidgetItemIterator
  3. Redis 哨兵模式 带密码单机
  4. [ZPG TEST 109] 兔子跳跃【构图】
  5. hdoj 2544 最短路
  6. 高通 8x12 添加 TP和按键
  7. 银河计算机网络,Python脚本之socket
  8. K8S发布解释型语言应用的最佳实践
  9. My Toolkit of Node.js
  10. 中小企业实施ERP更多是需要发展的眼光与坚定的决策