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

网站被域名重定向昆明外贸网站设计服务商

网站被域名重定向,昆明外贸网站设计服务商,wordpress自媒体博客主题,wordpress 替换前言:在之前的文章中介绍过线程池的核心原理,在一次面试中面试官让手写线程池,这块知识忘记的差不多了,因此本篇文章做一个回顾。 希望能够加深自己的印象以及帮助到其他的小伙伴儿们😉😉。 如果文章有什么…

前言:在之前的文章中介绍过线程池的核心原理,在一次面试中面试官让手写线程池,这块知识忘记的差不多了,因此本篇文章做一个回顾。
希望能够加深自己的印象以及帮助到其他的小伙伴儿们😉😉。
如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。
小威在此先感谢各位大佬啦~~🤞🤞

在这里插入图片描述

🏠个人主页:小威要向诸佬学习呀
🧑个人简介:大家好,我是小威,一个想要与大家共同进步的男人😉😉
目前状况🎉:24届毕业生,曾经在某央企公司实习,目前在某税务公司实习👏👏

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,我亲爱的大佬😘

在这里插入图片描述

以下正文开始

在线程池核心原理篇介绍过线程池的核心原理,今天来模拟线程池和工作队列的流程,以及编写代码和测试类进行测试。下面附下之前线程池的核心流程:
在这里插入图片描述
在线程池核心原理的源码中,涉及到了一系列的流程,包括线程池队列数量是否已满,运用什么样的拒绝策略等。在我们手写线程池的代码中,不需要考虑那么多因素,只需要模拟简单的情景和过程,因此整体来讲还是比较简单的。

手写线程池,必不可少的组件有任务队列,任务的消费者线程池,线程池创建等。我们也可定义构造方法,创建指定大小的线程池线程个数。当然在使用完线程池中的线程后,我们需要考虑将其销毁或关闭。
在这里插入图片描述

相关代码和解释如下:

package XIAOWEI;import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.stream.IntStream;public class ThreadPool {private static final int WorkQueueSIZE = 5;private BlockingQueue<Runnable> workQueue;private List<WorkThread> workThreads=new ArrayList<WorkThread>();/*** @author xiaowei* @param poolSize* @param workQueue* 构造方法,传线程池的大小和阻塞队列*/public ThreadPool(int poolSize,BlockingQueue<Runnable> workQueue) {this.workQueue = workQueue;IntStream.range(0,poolSize).forEach((i)->{WorkThread workThread=new WorkThread();workThread.start();workThreads.add(workThread);});}/*** @param poolSize* 在ThreadPool的构造方法中传入线程池的大小*/public ThreadPool(int poolSize){this(poolSize,new LinkedBlockingQueue<>(WorkQueueSIZE));}/*** @param task* 通过线程池执行任务*/public void extcute(Runnable task){try {workQueue.put(task);} catch (InterruptedException e) {e.printStackTrace();}}public void shutdown(){if(workThreads!=null && workThreads.size()>0){workThreads.stream().forEach((workThread) -> {workThread.interrupt();});}}/*** 内部类 源源不断的消耗workQueue中的任务*/class WorkThread extends Thread {@Overridepublic void run() {Thread currentThread = Thread.currentThread();// 死循环 不断一直消费队列中的任务 直到任务被消费完全while (true) {try {if (currentThread.isInterrupted()) {break;}Runnable workTasK = workQueue.take();workTasK.run();} catch (InterruptedException e) {currentThread.interrupt();}}}}
}

相关测试代码如下:

package XIAOWEI;import java.util.stream.IntStream;public class ThreadPoolTest {public static void main(String[] args) {ThreadPool threadPool = new ThreadPool(5);IntStream.range(0,10).forEach((i)->{threadPool.extcute(()->{System.out.println(Thread.currentThread().getName()+"2023一起加油");});});threadPool.shutdown();}
}

一共在线程池中加入了五个线程和十个任务,因此每个线程会执行两个任务。
测试结果如下图所示:
在这里插入图片描述

好了,本篇文章就先分享到这里了,后续会继续分享其他方面的知识,感谢大佬认真读完支持咯~
在这里插入图片描述

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起讨论😁
希望能和诸佬们一起努力,今后我们顶峰相见🍻
再次感谢各位小伙伴儿们的支持🤞

在这里插入图片描述

http://www.yayakq.cn/news/982985/

相关文章:

  • 邢台网站制作哪家好最好的销售管理系统
  • 山东手机网站建设公司山东企业网站建设
  • 专题网站开发报价qq号码免费申请注册
  • wordpress 站点维护动漫视频制作软件
  • 安全网络公司排名谷歌seo课程
  • 建设局查询网站开微信小程序要钱吗
  • 统一管理网站系统食品公司网站设计项目
  • 贵阳装饰装修公司网站云南省建设工程标准定额网站
  • 网站域名管理海宁市建设局官方网站
  • 互联网站备案管理工作方案 工信部深圳网站设计哪家比较好
  • 查询商品价格走势的网站中建集团官网
  • 购物商城建设网站wordpress多站点插件
  • 正阳县网站建设网页设计与制作报告模板
  • 网站推广的网站作用centos打开wordpress
  • 企业网站建设内容绚丽的网站
  • 广西新站seo郑州聚商网络科技有限公司
  • 网站建站哪个公司好一点如何判断网站是不是自适应
  • 常德建设局网站房地产信息网上查询系统
  • 淘宝优惠劵网站建设提供建议的网站模板
  • 如何增加网站关键词库wordpress备份插件中文
  • 贵阳专用网站建设整站seo免费咨询
  • 德清网站制作网站推广方案设计
  • 手机怎么自创网站哪些编程语言适合网站开发
  • 免费建自己域名的网站吗wordpress网速慢
  • 滁州市建设工程质量监督站网站如何做免费音乐网站
  • 最简单网站设计的代码wordpress 邮箱注册
  • 佛山网站建站推广上海建筑设计有限公司
  • 老域名新网站推广h5页面制作图片
  • 做公司网站需要多久手机优化不足80怎么办
  • 网站单页在线制作装修网站建设方案