线程-创建线程的方法、线程池

news2024/9/30 7:19:47

1.创建线程一共有哪几种方法?

继承Thread类创建线程

     继承Thread类,重写run()方法,在main()函数中调用子类的strat()方法

实现Runnable接口创建线程

        先创建实现Runnable接口的类,重写run()方法,创建类的实例对象,将对象作为参数创建Thread对象,调用Thread对象的start()方法。

使用Callable和Future创建线程

        创建Callable接口实现的类,重写call()方法,创建该类的实例对象,作为参数创建FutureTast对象,然后以FutureTask对象作为参数创建Thread对象,调用Thread对象的start()方法。

使用线程池创建

        使用ThreadPoolExcutor创建线程,可以准确的控制创建的数量、最大等待数量,拒绝策略等

1.corePoolSize 核心池子的数量(大小)默认是先不创建线程,有任务到达后,再创建,之后就不销毁了

2.maximumPoolSize 最大池子数量

3.keepAliveSize:非核心线程池中的线程,在多久之后没有任务执行时销毁

4.TimeUint : 时间单位,7种静态属性

  

5.workQueue: 等待队列  设置队列数量 20

6.threadFactory :创建线程的工厂

7.Handler 拒绝策略

1.AbortPolicy策略:直接抛出异常

2.CallerPolicy:提交任务的线程执行,

3.DiscardOldestPolicy:丢弃队列中等待时间最长的任务

4.DiscardPolicy:直接丢弃任务,不予理睬

向线程池提交任务有两种方式:

execute:提交实现了Runnable ,没有返回值

submit:提交实现了RunnableCallable

区别:execute 适用于不需要关注返回值的场景,submit 方法适用于需要关注返 回值的场景。

 

execute方法执行流程图: 

线程池的优点:(模拟面试没有回答上)

1.重复利用线程,降低线程创建和销毁带来的资源消耗
2.统一管理线程,线程的创建和销毁都由线程池进行管理
3.响应速度,线程创建已经完成,任务来到可直接处理,省去了创建时间

2.线程通信的方法有哪些?

       

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

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

相关文章

【Python】科研代码学习:七 TrainingArguments,Trainer

【Python】科研代码学习:七 TrainingArguments,Trainer TrainingArguments重要的方法 Trainer重要的方法使用 Trainer 的简单例子 TrainingArguments HF官网API:Training 众所周知,推理是一个大头,训练是另一个大头 之…

Linux 理解进程

目录 一、基本概念 二、描述进程-PCB 1、task_struct-PCB的一种 2、task_ struct内容分类 三、组织进程 四、查看进程 1、ps指令 2、top命令 3、/proc文件系统 4、在/proc文件中查看指定进程 5、进程的工作目录 五、通过系统调用获取进程标示符 1、getpid()/get…

空间复杂度(数据结构)

概念: 空间复杂度也是一个数学表达式,是对一个算法在运行过程中临时占用存储空间大小的量度 。 空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度计算规则基本跟实践复…

nicegui学习使用

https://www.douyin.com/shipin/7283814177230178363 python轻量级高自由度web框架 - NiceGUI (6) - 知乎 python做界面,为什么我会强烈推荐nicegui 秒杀官方实现,python界面库,去掉90%事件代码的nicegui python web GUI框架-NiceGUI 教程…

EI级 | Matlab实现PCA-GCN主成分降维结合图卷积神经网络的数据多特征分类预测

EI级 | Matlab实现PCA-GCN主成分降维结合图卷积神经网络的数据多特征分类预测 目录 EI级 | Matlab实现PCA-GCN主成分降维结合图卷积神经网络的数据多特征分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现PCA-GCN主成分降维结合图卷积神经网络的数据多…

用conda创建虚拟环境

下载好conda之后,在跑代码之前,可以用conda来创建虚拟环境,然后在虚拟环境中下载包pip之类的。 创建步骤如下: 1.conda create --name hhh 其中hhh为我的虚拟环境的名字,之后选择y即yes即可继续创建 可以看到&#…

LVS集群 ----------------(直接路由 )DR模式部署 (二)

一、LVS集群的三种工作模式 lvs-nat:修改请求报文的目标IP,多目标IP的DNAT lvs-dr:操纵封装新的MAC地址(直接路由) lvs-tun:隧道模式 lvs-dr 是 LVS集群的 默认工作模式 NAT通过网络地址转换实现的虚拟服务器&…

springcloud第3季 consul服务发现注册,配置中心2

一 consul的作用 1.1 为何使用注册中心 为何要用注册中心? 1.A服务调用B服务,使用ip和端口,如果B服务的ip或者端口发生变化,服务A需要进行改动; 2.如果在分布式集群中,部署多个服务B,多个服…

【开发工具】认识Git | 认识工作区、暂存区、版本库

文章目录 一、Git初识git本质上是一个版本控制器 二、Git的安装 - CentOS三、Git基本操作1. 创建Git本地仓库2. 配置Git3. 认识工作区、暂存区、版本库4. 版本回退5. 撤销修改情况1:对于工作区的代码,还没有add情况二:已经add ,但…

有哪些平台可以赚些零花钱?分享7个副业兼职平台

正规可靠的兼职副业平台有很多,以下是一些常见的平台: 1,微头条 微头条是一种短文本分享平台,通过精简和优化文字,以吸引读者的注意力。需要在有限的字数内表达清晰明了的观点,关键词的准确使用是关键。例…

不允许你不知道Python作用域

在Python中,变量的作用域限制非常重要。根据作用域分类,有局部、全局、函数和内建作用域。无作用域限制的变量可以在分支语句和循环中定义,并在外部直接访问。不同的作用域决定了变量的可访问范围,访问权限取决于变量的位置。 1.…

面试经典150题 -- 图的广度优先遍历 (总结)

总的链接 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台 909 . 蛇梯棋 链接 : . - 力扣(LeetCode) 题意 : 直接bfs就好了 , 题意难以理解 : class Solution:def snakesA…

虚拟机中安装Win98

文章目录 一、下载Win98二、制作可启动光盘三、VMware中安装Win98四、Qemu中安装Win981. Qemu的安装2. 安装Win98 Win98是微软于1998年发布的16位与32位混合的操作系统,也是一代经典的操作系统,期间出现了不少经典的软件与游戏,还是值得怀念的…

office办公软件太贵了 Microsoft的Word为什么要买 Microsoft365家庭版多少钱 Microsoft365密钥

Microsoft office是一个被广泛使用的办公软件,它包括了 Word、Excel、PowerPoint 等多种常用的应用程序,已成为许多企业、机构和个人必备的工具。 首先,要理解 Microsoft Office 的价格,我们需要考虑到它的功能和市场需求。Micro…

Pycharm使用教程

1.设置字体型号与大小 file->setting->editor->font(字型),size(大小) 2.设置背景颜色 file->setting->editor->color scheme->scheme 3.注释/取消注释 ctrl/ 选中需要注释的部分,双击ctrl/ 取消注释则选…

揭秘数据中心幕后:从电力消耗到温度调控的策略

建设并运营数据中心并非简单的连接硬盘、通电和联网就可以,而是涉及复杂的硬件集成、能源管理、散热设计以及适应不断增长的数据处理和存储需求等诸多挑战。随着全球互联网的普及和AI技术的快速发展,数据中心的规模和能耗需求都在急剧增加。尤其是在电力…

Vue.js计算属性:实现数据驱动的利器

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

新雀优化算法NOA求解机器人栅格地图最短路径规划,可以自定义地图(提供MATLAB代码)

一、星雀优化算法 星雀优化算法(Nutcracker optimizer algorithm,NOA)由Mohamed Abdel-Basset等人于2023年提出,该算法模拟星雀的两种行为,即:在夏秋季节收集并储存食物,在春冬季节搜索食物的存储位置。CEC2005:星雀优化算法(Nut…

判断链表回文

题目&#xff1a; //方法一&#xff0c;空间复杂度O(n) class Solution { public:bool isPalindrome(ListNode* head) {vector<int> nums; //放进数组后用双指针判断ListNode* cur head;while(cur){nums.emplace_back(cur->val);cur cur->next;}for(int i0…

Spring MVC 全局异常处理器

如果不加以异常处理&#xff0c;错误信息肯定会抛在浏览器页面上&#xff0c;这样很不友好&#xff0c;所以必须进行异常处理。 1.异常处理思路 系统的dao、service、controller出现都通过throws Exception向上抛出&#xff0c;最后由springmvc前端控制器交由异常处理器进行异…