简单模拟实现一个线程池

废话不多说之间上代码

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;public class MyThreadPoolExecutor {private List<Thread> list=new ArrayList<>();private BlockingQueue<Runnable> blockingQueue=new ArrayBlockingQueue<>(100);public MyThreadPoolExecutor(int size) {for (int i = 0; i < size; i++) {Thread thread=new Thread(()->{while (true) {Runnable runnable= null;try {runnable = blockingQueue.take();runnable.run();} catch (InterruptedException e) {throw new RuntimeException(e);}}});thread.start();list.add(thread);}}public void submit(Runnable runnable) throws InterruptedException {blockingQueue.put(runnable);}
}

这里模拟的是固定数量的线程池

下面通过一个示例简单演示一下

public class Test {public static void main(String[] args) throws InterruptedException {MyThreadPoolExecutor myThreadPoolExecutor=new MyThreadPoolExecutor(5);for (int i = 0; i < 100; i++) {int count=i;myThreadPoolExecutor.submit(()->{System.out.println(Thread.currentThread().getName()+"执行"+count);});}}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/647074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qemu使用

百度qemu bios 失败 问题 坑爹的玩意&#xff0c;编译qemu 还需要python3.5以上 解决方法&#xff1a; CentOS7安装Python3.8-CSDN博客 https://www.cnblogs.com/Oliver.net/p/7211967.html 编译python3.8还由于openssl过低 成功启动qemu 先阅读官网 Download QEMU …

【Linux】Ubuntu的gnome切换KDE Plasma

文章目录 安装KDE Plasma桌面环境添加软件源并更新apt安装kubuntu-desktop&#xff08;作者没有成功&#xff09;aptitude安装kubuntu-desktop多次aptitude install&#xff08;特别重要特别重要&#xff09;其他kde软件包 卸载gnome桌面 Ubuntu自带的桌面环境是gnome&#xff…

Acwing---788.逆序对的数量

逆序对的数量 1.题目2.基本思想3.代码实现 1.题目 给定一个长度为 n n n 的整数数列&#xff0c;请你计算数列中的逆序对的数量。逆序对的定义如下&#xff1a;对于数列的第 i i i个和第 j j j 个元素&#xff0c;如果满足 i < j i<j i<j 且 a [ i ] > a [ j …

基于云原生技术栈构建企业统一基础技术平台(总纲)

一、概述 本文主要介绍基于云原生技术栈建设企业技术平台的总纲&#xff0c;该技术平台对业务应用全生命周期进行管理和支撑&#xff0c;提供从需求交付、生产运行、稳定保障、资产运营&#xff0c;以及安全生产的体系化解决方案&#xff0c;为企业自建或采购技术平台提供参考。…

【嵌入式学习】C++QT-Day2-C++基础

笔记 见我的博客&#xff1a;https://lingjun.life/wiki/EmbeddedNote/19Cpp 作业 自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c; 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度…

day02 有序数组平方、长度最小的子数组、螺旋矩阵II

题目链接&#xff1a;leetcode977-有序数组平方&#xff0c;leetcode209-长度最小的子数组, leetcode59-螺旋矩阵II 有序数组平方 解题思路&#xff1a;双指针法&#xff0c;left, right 1&#xff09;创建一个等长的新数组 2&#xff09;left从左到右扫描数组&#xff0c;ri…

【卡梅德生物】稳定细胞系构建|构建流程

在生物技术领域&#xff0c;稳定细胞系的构建是研究、药物开发和生产过程中关键的一环。稳定细胞系不仅为基因表达提供了可靠的平台&#xff0c;还在生物制药、基因治疗等领域发挥着重要作用。本文将介绍稳定细胞系构建的背景、主要类型、构建流程、技术优势&#xff0c;并强调…

考研机试 手机键盘

考研机试手机键盘 用到map工具 具体键入规则和花费时间如下描述&#xff1a; 对于同一键上的字符&#xff0c;例如 a,b,c都在 “1” 键上&#xff0c;输入 a 只需要按一次&#xff0c;输入 c需要连续按三次。 如果连续两个字符不在同一个按键上&#xff0c;则可直接按&#…

数据校验和错误检测

在数据通信和存储的过程中&#xff0c;保证数据的完整性和准确性至关重要。为此&#xff0c;采用了各种校验和错误检测方法&#xff0c;以提高数据传输的可靠性。本文将介绍校验位、循环冗余检查&#xff08;CRC&#xff09;和前向纠错&#xff08;FEC&#xff09;这三种常用的…

C++ 数论相关题目(欧拉函数、筛法求欧拉函数)

1、欧拉函数 给定 n 个正整数 ai &#xff0c;请你求出每个数的欧拉函数。 欧拉函数的定义 1∼N 中与 N 互质的数的个数被称为欧拉函数&#xff0c;记为 ϕ(N) 。 若在算数基本定理中&#xff0c;Npa11pa22…pamm &#xff0c;则&#xff1a; ϕ(N) Np1−1p1p2−1p2…pm−1p…

Salesforce Lightning 的 Close Case 按钮无法批量关闭 Case 的原因和解决方法

为 Lightning 页面添加了自定义的 Close Case 按钮&#xff08;方法可参考&#xff1a;https://www.simplysfdc.com/2021/01/salesforce-mass-close-case.html&#xff09;后&#xff0c;可能会出现无法批量关闭 Case 的情况。 选中多个 Case&#xff0c;再点击 Close Case 按…

全球软件供应链安全指南和法规

软件供应商和用户&#xff0c;都需要对有效抵御软件供应链攻击的要求和法规越来越熟悉。 供应链安全继续在网络安全领域受到重点关注&#xff0c;这是有充分理由的&#xff1a;SolarWinds、Log4j、Microsoft和Okta软件供应链攻击等事件&#xff0c;持续影响着头部软件供应商以…

基于Springboot的影城管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的影城管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

JAVA笔记16--线程

进程 进程是处于运行过程中的程序&#xff0c;具有独立的功能&#xff0c;是系统进行资源分配和调度的独立单位。 独立性 进程是系统重独立存在的实体&#xff0c;它拥有自己独立的资源&#xff0c;每个进程都拥有自己私有的地址空间&#xff0c;在没有经过进程本身允许的情…

leetcode1237. 找出给定方程的正整数解

1237. 找出给定方程的正整数解https://leetcode.cn/problems/find-positive-integer-solution-for-a-given-equation/ 难度中等 101 给你一个函数 f(x, y) 和一个目标结果 z&#xff0c;函数公式未知&#xff0c;请你计算方程 f(x,y) z 所有可能的正整数 数对 x 和 y。满…

在线教育系统源码深度剖析:从零开始开发一款企业培训APP

下文&#xff0c;笔者将与大家一起深入研究在线教育系统源码&#xff0c;同时探究从零开始开发一款面向企业培训的APP所涉及的关键技术和流程。 一、背景介绍 企业培训是组织内部不可或缺的一环&#xff0c;而在线教育系统通过数字化手段&#xff0c;使培训更加灵活、个性化。…

深度学习与图像描述生成——看图说话(3)

目录 一、整体架构 二、学习策略 2.1 监督学习 2.2 无监督学习 2.3 强化学习 三、特征映射 3.1 定义 3.2 原理 3.3 关键技术 3.4 重要案例 3.5 特别注意下特征空间这一概念 四、语言模型 4.1 定义与原理 4.2 关键技术 4.3 重要性与作用 4.4 案例与应用 五、注…

访问网站时IP被阻止?5个解决方法

相信很多人遇到过IP禁令&#xff1a;比如你在访问社交媒体、搜索引擎或电子商务网站时会被限制访问&#xff0c;又或者你的的账号莫名被封&#xff0c;这些由于网络上的种种限制我们经常会遭遇IP被封的情况&#xff0c;导致无法使用继续进行网络行动。在本文中&#xff0c;我们…

SpringBoot集成Milvus2.3.4(2) |(实现向量的增删改查)

SpringBoot集成Milvus2.3.4(2) |(实现向量的增删改查) 文章目录 SpringBoot集成Milvus2.3.4(2) |(实现向量的增删改查)@[TOC]前言一、Milvus数据库的新增1.新增数据二、Milvus删除数据1.删除数据三、Milvus更新数据1.更新数据四、Milvus查询数据1.查询数据总结章节 第一…

704.二分查找(力扣LeetCode)

704.二分查找&#xff08;力扣LeetCode&#xff09; 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 示例 1: 输入: nums…