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

在网站后台挂马科技兴国

在网站后台挂马,科技兴国,仟亿网络科技工作室,东城网站制作公司前言:在之前的文章中介绍过线程池的核心原理,在一次面试中面试官让手写线程池,这块知识忘记的差不多了,因此本篇文章做一个回顾。 希望能够加深自己的印象以及帮助到其他的小伙伴儿们😉😉。 如果文章有什么…

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

在这里插入图片描述

🏠个人主页:小威要向诸佬学习呀
🧑个人简介:大家好,我是小威,一个想要与大家共同进步的男人😉😉
目前状况🎉: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/627066/

相关文章:

  • 李家沱网站建设电商网站的建设动态
  • 热门网站有哪些免费网站建设推销
  • 天津智能网站建设找哪家专业设计网址青岛网站开发
  • 网站建设和网站开发宿迁房产网 新楼盘
  • 做网站需要阿里云吗销售和营销的区别
  • 清廉企业建设seo教程技术优化搜索引擎
  • 购物帮–做特惠的导购网站青岛网站推广外包
  • 答题卡在线制作网站A华企网络网站建设
  • 哪里有做网站技术盘锦如何做百度的网站
  • 阿里云域名 设置网站制作表情包
  • 泰州网站建设策划网络规划与优化技术
  • 网站建设上机考试题目寻找装修公司
  • 做英语教具的网站网站模板ftp
  • 较好的网站模板企业文化展厅设计
  • 建造电商网站wordpress如何设置文章模板
  • 空间网站打不开网站建站平台 开源
  • 好的网页网站设计广告制作行业
  • 培训网站建设多少钱梵克雅宝五花手链
  • wordpress 企业网站制作服务企业建设网站
  • 沈阳网站建设三好街太原建站seo
  • 机票酒店网站建设网站管理助手ftp连接不上
  • 湛江网站建设皆选小罗23上海徐家汇网站建设
  • 网站建设及推广外包竞价推广外包公司
  • 网站后台登陆破解网站优化培训班
  • 做一手房用什么网站视频制作收费标准
  • 网站建设教学大纲南通如何制作一个网站
  • 营销型网站建设优化dw设计一个简单网站
  • 连锁销售公司网站的建设方案南京网站设计工作室
  • 彩票网站什么做百度网站建设
  • 河南省建设厅网站官网百度关键词排名代做