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

途牛网站建设百度推广开户费

途牛网站建设,百度推广开户费,教做网站的学校,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.hkea.cn/news/212620/

相关文章:

  • 网站做301顶级域名需要绑定网站排名掉了怎么恢复
  • wordpress app 源码合肥seo整站优化网站
  • 建立网站基本步骤安仁网络推广
  • 网页建设方案怎么写网站seo优化心得
  • 还没有做网站可以先备案域名吗seo怎么提升关键词的排名
  • 做网站原型图软件优化设计七年级下册语文答案
  • 2023年舆情分析报告seo优化宣传
  • 武汉网站建设 熊掌号最佳磁力引擎吧
  • 教育平台网站开发品牌运营
  • 91人才网赣州招聘网安卓优化大师app下载安装
  • 合肥网页模板建站营业推广策划
  • 网站做301根目录在哪教育培训机构平台
  • 企业做网站域名需要自己申请吗深圳百度推广客服电话多少
  • 备案网站容易被收录公司网站建设费用多少
  • 4s店网站建设方案百度app下载最新版
  • 创建电子商务网站的7个步骤做网站推广需要多少钱
  • DW怎么做电商网站梅花seo 快速排名软件
  • 哪个网站可以查企业信息今日热搜榜官网
  • 做网站有必要注册商标吗河北百度seo关键词
  • 网站更换服务器教程下载app到手机上并安装
  • 学校网站建设都是谁做的网络舆情分析
  • 怎么把现有网站开发php昆明seo排名外包
  • 网站桥页怎么找理发培训专业学校
  • 谷城网站开发百度导航官网
  • 做网站不优化平面设计网站
  • 聊城做网站的公司价格谷歌seo软件
  • 支部网站及活动室建设网页广告调词平台
  • 网站建设的企业抚州seo外包
  • 澳门wap网站制作百度关键词检测工具
  • 哪些外贸网站可以做soho首页