当前位置: 首页 > news >正文

深圳门窗在哪里网站做推广免费的网站申请

深圳门窗在哪里网站做推广,免费的网站申请,深圳大型网站开发,汽车行业网站设计线程池继承体系 Executor(interface)->ExecutorService(interface)->ThreadPoolExecutor(class) Executors.newFixedThreadPool 核心线程数最大线程数(没有救急线程被创建),所以也无需超时时间阻塞队列LinkedBlockingQueue,可以放任意…

线程池继承体系

Executor(interface)->ExecutorService(interface)->ThreadPoolExecutor(class)

Executors.newFixedThreadPool

 核心线程数=最大线程数(没有救急线程被创建),所以也无需超时时间阻塞队列LinkedBlockingQueue,可以放任意数量的任务,队列容量=Integer.MAX_VALUE适用于:任务量已知,相对耗时的任务

 public static void main(String[] args) {ExecutorService executorService = Executors.newFixedThreadPool(2);executorService.execute(() -> {log.debug("1");});executorService.execute(() -> {log.debug("2");});executorService.execute(() -> {log.debug("3");});}

ThreadFactory自定义线程名称

 public static void main(String[] args) {ExecutorService executorService = Executors.newFixedThreadPool(2,new ThreadFactory() {private final AtomicInteger threadNumber = new AtomicInteger(1);private final String namePrefix = "xkj_";@Overridepublic Thread newThread(Runnable r) {Thread t = new Thread(r,namePrefix + threadNumber.getAndIncrement());return t;}});executorService.execute(() -> {log.debug("1");});executorService.execute(() -> {log.debug("2");});executorService.execute(() -> {log.debug("3");});}

 

Executors.newCachedThreadPool()

 没有核心线程,全是救急线程,线程存活时间是1分钟,救急线程可以无限创建Integer.MAX_VALUE。

SynchronousQueue 同步队列,特点是,没有容量,没有线程来取是放不进去的(一手交钱,一手交货)

ExecutorService executorService = Executors.newCachedThreadPool();executorService.execute(() -> {log.debug("111");});executorService.execute(() -> {log.debug("222");});executorService.execute(() -> {log.debug("333");});

SynchronousQueue同步队列

一手交钱一手交货,没有线程来取任务,就无法添加新任务。

SynchronousQueue<Integer> synchronousQueue = new SynchronousQueue<>();new Thread(() -> {try {log.debug("putting{}", 1);synchronousQueue.put(1);//会阻塞住log.debug("putted{}", 1);log.debug("putting{}", 2);synchronousQueue.put(2);//会阻塞住log.debug("putted{}", 2);} catch (InterruptedException e) {e.printStackTrace();}}, "t1").start();new Thread(() -> {try {Integer take = synchronousQueue.take();//取出元素会让put方法后面继续执行,不再阻塞log.debug("take:{}", take);}catch (InterruptedException e) {e.printStackTrace();}}, "t2").start();

适用于:任务数比较密集,但每个任务执行时间较短的情况。

Executors.newSingleThreadExecutor

希望多个任务排队执行,线程数固定为1。

任务数多于1时,会放入无界队列排队。

任务执行完毕,这唯一的线程也不会被释放。

跟自定义创建一个单线程串行执行任务的区别:

如果任务执行失败而终止没有任何补救措施,而线程池还会新建一个线程,保证池的正常工作。

FinalizableDelegatedExecutorService应用的是装饰器模式,只是对外暴露了ExecutorService接口,因此不能调用ThreadPoolExecutor中特有的方法。

Executors.newFixedThreadPool(1)初始时为1,以后还可以修改。对外暴露的是ThreadPoolExecutor对象,可以强转后调用setCorePoolSize等方法进行修改。

 ExecutorService executorService = Executors.newSingleThreadExecutor();executorService.execute(() -> {log.debug("aaa");int i = 1 / 0;});executorService.execute(() -> {log.debug("bbb");});executorService.execute(() -> {log.debug("ccc");});

http://www.hrbkazy.com/news/27784.html

相关文章:

  • cms管理手机网站模板下载网站建设公司哪个好呀
  • wordpress的日志形式怎么用天津seo顾问
  • 企业网站可以做跨境电商吗seo平台代理
  • 做网站要什么知识条件搜索引擎平台排名
  • 网站空间免备案刷百度关键词排名
  • 经常使用( )对网页的布局进行控制seo排名技术教程
  • 网页设计学习教程排名优化外包公司
  • 自己可以做装修效果图的网站青岛网站建设公司
  • 上海网站的优化公司seo查询爱站
  • 做网站为什么需要营业执照互联网营销师是做什么的
  • 网页制作与设计专业免费seo培训
  • 博客类网站源码建设网站的网站首页
  • 个人网站域名所有权长尾关键词有哪些
  • 廊坊网站建设招聘投稿平台
  • 如何做网站不被查百度收录提交网站后多久收录
  • 做配色的网站百度投诉中心24人工客服电话
  • 做效果图常用的网站百度网站权重查询
  • 《动态网站建设》第04章抚州seo外包
  • 做网站好还是app好网站软件下载app
  • 石家庄做网站比较好的公司有哪些网上培训机构
  • 哪里网站建设淘宝关键词优化推广排名
  • jsp做网站用什么封装字符串手机建站系统
  • 网站注册页面跳出怎么做东莞网站推广运营公司
  • 上海网站开发报价新乡百度网站优化排名
  • 酒店网站建设协议seo文案范例
  • 3d演示中国空间站建造历程seo的中文意思
  • 免费管理软件开发平台seo优化关键词分类
  • 网站关键词设置技巧宠物美容师宠物美容培训学校
  • 网站建设专题页百度服务商平台
  • 苏州做网站公司排名河南今日头条新闻最新