长春做网站公司企业名录搜索软件 2022

news/2025/9/22 18:23:18/文章来源:
长春做网站公司,企业名录搜索软件 2022,建立简单的网站,网站开发最流行的语言上一篇文章已经介绍了线程的基本概念以及线程相关的API#xff0c;下面来看一下线程池 一、线程池框架 1、线程池的优点 重用线程池中的线程#xff0c;避免因为线程的创建和销毁所带来的性能开销。 能有效控制线程池的最大并发数#xff0c;避免大量线程之间因互相抢夺系…上一篇文章已经介绍了线程的基本概念以及线程相关的API下面来看一下线程池 一、线程池框架 1、线程池的优点 重用线程池中的线程避免因为线程的创建和销毁所带来的性能开销。 能有效控制线程池的最大并发数避免大量线程之间因互相抢夺系统资源而导致的阻塞现象。 能够对线程进行简单的管理并提供定时执行以及指向间隔循环执行等功能。 2、JAVA中相关类 Executor是一个顶层接口它里面只声明了一个方法execute(Runnable) ExecutorService接口继承了Executor接口并且声明了一些方法submit、invokeAll、invokeAny以及shutDown等AbstractExecutorService实现了ExecutorService接口基本实现了ExecutorService中声明的所有方法 ThreadPoolExecutor接口继承了AbstractExecutorService这个类并且实现了这些重要方法execute() 、shutdown()、shutdownNow() Executors提供了大量的static方法来创建各种特性的线程池基于ThreadPoolExecutor的构造方法、大量的callable方法和创建ThreadFactory的方法 ThreadPoolExecutor的重要属性 private final BlockingQueueRunnable workQueue;//任务缓存队列用来存放等待执行的任务private final ReentrantLock mainLock new ReentrantLock();//线程池的主要状态锁对线程池状态比如线程池大小、runState等的改变都要使用这个锁private final HashSetWorker workers new HashSetWorker();//用来存放工作集private final Condition termination mainLock.newCondition();//private int largestPoolSize;//用来记录线程池中曾经出现过的最大线程数private long completedTaskCount;//用来记录已经执行完毕的任务个数private volatile ThreadFactory threadFactory;//线程工厂用来创建线程private volatile RejectedExecutionHandler handler;//任务拒绝策略private volatile long keepAliveTime;//线程存活时间 private volatile boolean allowCoreThreadTimeOut;//是否允许为核心线程设置存活时间private volatile int corePoolSize;//核心池的大小即线程池中的线程数目大于这个参数时提交的任务会被放进任务缓存队列private volatile int maximumPoolSize;//线程池最大能容忍的线程数private static final RejectedExecutionHandler defaultHandler new AbortPolicy();//默认的任务拒绝策略private static final RuntimePermission shutdownPerm new RuntimePermission(modifyThread); 这里要重点解释一下corePoolSize、maximumPoolSize、largestPoolSize三个变量。 corePoolSize在很多地方被翻译成核心池大小其实我的理解这个就是线程池的大小。举个简单的例子 假如有一个工厂工厂里面有10个工人每个工人同时只能做一件任务。 因此只要当10个工人中有工人是空闲的来了任务就分配给空闲的工人做 当10个工人都有任务在做时如果还来了任务就把任务进行排队等待 如果说新任务数目增长的速度远远大于工人做任务的速度那么此时工厂主管可能会想补救措施比如重新招4个临时工人进来 然后就将任务也分配给这4个临时工人做 如果说着14个工人做任务的速度还是不够此时工厂主管可能就要考虑不再接收新的任务或者抛弃前面的一些任务了。 当这14个工人当中有人空闲时而新任务增长的速度又比较缓慢工厂主管可能就考虑辞掉4个临时工了只保持原来的10个工人毕竟请额外的工人是要花钱的。 这个例子中的corePoolSize就是10而maximumPoolSize就是14104。 也就是说corePoolSize就是线程池大小maximumPoolSize在我看来是线程池的一种补救措施即任务量突然过大时的一种补救措施。 不过为了方便理解在本文后面还是将corePoolSize翻译成核心池大小。 largestPoolSize只是一个用来起记录作用的变量用来记录线程池中曾经有过的最大线程数目跟线程池的容量没有任何关系。 重要方法 execute public void execute(Runnable command) {if (command null)throw new NullPointerException();int c ctl.get();if (workerCountOf(c) corePoolSize) {if (addWorker(command, true))return;c ctl.get();}if (isRunning(c) workQueue.offer(command)) {int recheck ctl.get();if (! isRunning(recheck) remove(command))reject(command);else if (workerCountOf(recheck) 0)addWorker(null, false);}else if (!addWorker(command, false))reject(command);} 3、线程池的分类 newFixedThreadPool newWorkStealingPool newSingleThreadExecutor newCachedThreadPool newSingleThreadScheduledExecutor newScheduledThreadPool 重点是ThreadPoolExecutor的代码、还需要理解线程池状态、任务的执行、线程池中的线程初始化、任务缓存队列及排队策略、任务拒绝策略、线程池的关闭、线程池容量的动态调整 简单使用Demo package com.demo;import java.util.ArrayList; import java.util.Collection; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class ThreadPool { private int threadCount 10;private int threadpoolCount 3;public static void main(String[] args) {new ThreadPool().threadPoolControl();}public void threadPoolControl() { ThreadObject[] et new ThreadObject[threadCount]; ExecutorService service Executors.newFixedThreadPool(threadpoolCount);CollectionThreadObject c new ArrayListThreadObject();for (int i 0; i threadCount; i) { et[i] new ThreadObject(); c.add(et[i]);}try {service.invokeAll(c);service.shutdown();} catch (InterruptedException e) {e.printStackTrace();}}class ThreadObject implements CallableObject{ public Object call() throws Exception {System.out.println(当前线程Thread.currentThread().getName(),线程对象this);return null;}} }

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

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

相关文章

可以登录国外网站吗宿州城乡建设局网站

转载自 JAVA面试常考系列三 题目一 什么是迭代器(Iterator)? 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中确定的地址。迭代器提供了一种方法,可…

网站建设三个友好网络营销理论包括哪些

我不知道正确的方法,但是这种手动方法是我用于简单脚本的方法,似乎已经适当地执行了。我会假设我所在的任何目录,我的程序的Python文件都在相对的src /目录中,我要执行的文件(具有正确的shebang和执行权限)被命名为main.py。$ mkd…

火速收藏!2025 云栖大会 AI 中间件议程看点全公开(附免费报名通道)

AI 正在重塑世界,也在颠覆其应用的构建范式 AI 中间件正成为连接 AI 技术与产业应用的纽带 2025 云栖大会“云智一体 碳硅共生”的主题下 9月26日,云栖小镇D1-3馆「AI 中间件论坛」 将聚焦 AI 时代中间件的技术演进…

Flutter跨平台工程实践与原理透视:从渲染引擎到高质产物 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

第二次软工作业——个人项目 - LXJ

github仓库:https://github.com/ApplePI-xu/3123004185这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class12G…

WinForm引入项目资源文件

以Buttom按钮为例去引入 ,在Debug文件目录下 , 新建一个images文件夹 ,然后把要使用的资源(图片)拖进去 ​将资源加载到项目中去 ,点击 Properties下面的Resoures.resx , 然后把图片直接拖进去 效果如下: ​这个…

猪八戒做网站排名网页设计制作教程

消息队列在使用过程中会出现很多问题 首先就是消息的可靠性,也就是消息从发送到消费者接收,消息在这中间过程中可能会丢失 生产者到交换机的过程、交换机到队列的过程、消息队列中、消费者接收消息的过程中,这些过程中消息都可能会丢失。 …

境外社交网站上做推广手机排名

一、准备两台主机,区分主从 二、完全区域传送 1、主DNS服务器配置 #安装相关的包 [rootoula1 ~]# yum install bind -y#关闭防火墙 [rootoula1 ~]# systemctl stop firewalld [rootoula1 ~]# setenforce 0#修改配置主文件 [rootoula1 ~]# vim /etc/named.conf opt…

广州百度网站推广设计网站app

WFilter NGF的“Web认证”模块,提供了一系列的上网认证解决方案。包括如下认证方式:本地用户名密码认证AD域用户名密码认证企业邮箱用户名密码认证Radius用户名密码认证微信WiFi认证Facebook Wifi认证除此,WFilter NGF还有一个“其他”的选项…

政务网站建设 发言山东省中国建设银行网站

精华置顶 墙裂推荐!小白如何1个月系统学习CV核心知识:链接 点击CV计算机视觉,关注更多CV干货 论文已打包,点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【目标检测】Re-Scoring Using Image-Language Similarit…

建设部网站官网造价系统广州网站设计哪里好

概念 发生在使用模板引擎解析用户提供的输入时。模板注入漏洞可能导致攻击者能够执行恶意代码或访问未授权的数据。 模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码分离。即也拓宽了攻击面,注入到模板中的代码可…

网站服务器维护内容php网站里放asp

在云计算和数据中心领域,Linux虚拟化作为基础设施的核心组件,为资源的高效利用和应用程序的灵活部署提供了坚实的基础。然而,尽管其优势显著,虚拟化环境下的性能损失问题仍然是一个不可忽视的挑战。本文将深入探讨Linux虚拟化中性…

中文网站域名外国网站做vr

Linux、Docker、Brew、Nginx常用命令 Linuxvi编辑器文件操作文件夹操作磁盘操作 DockerBrewNginx参考 Linux vi编辑器 Vi有三种模式。命令模式、输入模式、尾行模式,简单的关系如下: i -- 切换到输入模式,在光标当前位置开始输入文本。&a…

淘宝网站开发费用关于建设工程招标的网站

昨天(11月17日)升级到Windows 10 Threshold 2版本。我的使用的设备是Surface Pro 3,4G内存,128G硬盘。 Threshold 2是作为一个Windows系统更新推送的。如果没有收到系统更新提示,在系统设置里面手动检查一下更新就可以…

网站制作珠海公司asp.net 发布网站 ftp

1、类型转换构造 |自定义转换 利用一个已定义的对象,来定义另一个不同类型的对象 实现从源类型到目标类型的隐式类型转换的目的 总结下已知构造,包括类型转换构造 如下,如果Person给Human赋值时,Person有私有变量,则需要在Pers…

详细介绍:uniapp | u-waterfall实现瀑布流商品列表(支持筛选查询)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

注册公司网站怎么做太原网络公司网站

文章目录 持久化配置慢查询命令及安全配置内存配置 持久化配置 慢查询 命令及安全配置 漏洞:Redis未授权访问配合SSH key文件利用分析-腾讯云开发者社区-腾讯云 (tencent.com) 漏洞出现的核心的原因有以下几点 Redis未设置密码利用了Redis的config set命令动态修…

企业网站内容如何搭建wordpress主题代码放在哪里

书接上回 上回讲到创建一个示例工程 今天讲如何实现LED的点亮 点亮一个led 所需代码 参考来源网络 延时函数参考: Delay.c #include "stm32f10x.h"/*** brief 微秒级延时* param xus 延时时长,范围:0~233015* retval 无*/ vo…

政务系统网站知乎 wordpress 博客

一、题目描述 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[…