Java笔记 --- 七、多线程

七、多线程

线程

  • 线程是操作系统能够运行调度的最小单位

  • 被包含在进程之中,是进程的实际运行单位

  • 应用软件中相互独立,可以同时运行的功能

  • 每一个线程都有自己的栈

并发和并行

  1. 并发:在同一时刻,有多个指令在单个CPU上交替执行

  2. 并行:在同一时刻,有多个指令在多个CPU上同时执行

多线程的实现方式

继承Thread类

  1. 定义一个类继承Thread

  2. 重写run方法

  3. 创建类的对象,调用start()方法开启线程

实现Runnable接口

  1. 定义一个类实现Runnable接口

  2. 重写run方法

  3. 创建类的对象

  4. 创建一个Thread类的对象(形参是自己创建类的对象),开启线程

  • run方法里面可以获取当前线程的对象

  • Thread t = Thread.currentThread();

利用Callable接口和Future接口

  • 实现接口时的泛型代表运行结果的类型

成员方法

  • 线程的默认名字 Thread-X(X序号,从0开始)

  • 抢占式调度(随机)多个线程抢占CPU的执行权和时间

  • 优先级 1~10 默认5

  • 不是立马结束,陆续结束

线程的生命周期

同步代码块

  • 锁对象是唯一的

    1. static Object obj = new Object();

    2. 用当前类的字节码文件对象 MyThread.class

同步方法

Lock锁

死锁

  • 是一个错误,线程A和线程B分别用两把锁,程序卡死

  • 互相都等另一个线程的锁释放

等待唤醒机制

  • 生产者和消费者

  • 轮流执行

image-20240206164226008

阻塞队列

  • 在main方法中创建实现类

  • 在对应的线程类中需要在成员变量写对应的 ArrayBlockingQueue<String> queue;

  • 并在构造方法中也实现

  • queue对应的方法有

  1. put

  2. take

线程的状态

  • 没有运行状态

线程池

image-20240206193446533

自定义线程池

最大并行数

  • 4核8线程

  • 8就是最大并行数

CPU密集型运算

  • 计算比较多

    • 线程池数量=最大并行数+1

I/O密集型运算

  • 读取本地文件和数据库

  • thread dump工具可以计算时间

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Backtrader 文档学习- Observers - Benchmarking

Backtrader 文档学习- Observers - Benchmarking 1.概述 backtrader包括两种不同类型的对象&#xff0c;可以帮助跟踪&#xff1a; Observers 观察者Analyzers 分析器 在分析器领域中&#xff0c;已有TimeReturn对象&#xff0c;用于跟踪整个组合价值&#xff08;即包括现金…

vue父子组件通讯的几种方式总结学习

一直都是公司前端在写组件&#xff0c;我想着自己也写一波&#xff0c;然后先看看父子组件传值的内容&#xff0c;想写一写小demo然后练习一下这个内容&#xff0c;也算是系统学习一下怎么处理这个内容 其实就是2种父传子和子传父 1.父组件传子组件数据 其实就是父在标签中可…

计算机网络-流量控制(数据链路层的流量控制及与传输层流量控制的区别 流量控制的方法 可靠传输,滑动窗口,流量控制三者关系)

文章目录 数据链路层的流量控制及与传输层流量控制的区别流量控制的方法各方法对应的发生窗口和接收窗口大小 可靠传输&#xff0c;滑动窗口&#xff0c;流量控制三者关系小结 数据链路层的流量控制及与传输层流量控制的区别 端到端&#xff1a;两个主机之间的 点对点&#xf…

恒创科技:服务器内存不足影响大吗?

​  服务器在为网站、应用程序和在线服务提供支持方面发挥着关键作用。这些服务器需要提供最佳性能&#xff0c;以确保正常无缝的用户体验&#xff0c;而RAM是显著影响服务器性能的关键配置之一。 RAM 是一种随机存取存储器&#xff0c;计算机和服务器使用它来临时存储正在使…

VM安装Centos7

目标&#xff1a; 一&#xff0c;安装Centos7 二&#xff0c;ssh可以连接 1 新建虚拟机 一直下一步 2 直到此处&#xff0c;选择稍后安装 一直下一步直到完成。 3 选中虚拟机&#xff0c;点击设置 选择CD/DVD&#xff0c;选取ISO映像文件。 4 等待安装 并且设置root密码 5…

苹果证书过期有什么影响

引言 苹果证书是一种数字签名&#xff0c;用于验证应用程序的身份和完整性。然而&#xff0c;若该证书过期&#xff0c;将会对用户和开发者带来一定的影响。在本文中&#xff0c;我们将详细介绍苹果证书过期的原理和影响&#xff0c;并提供一些解决方法。 苹果证书的原理 苹…

机器学习 | 探索朴素贝叶斯算法的应用

朴素贝叶斯算法是一种基于贝叶斯定理和特征条件独立假设的分类算法。它被广泛应用于文本分类、垃圾邮件过滤、情感分析等领域&#xff0c;并且在实际应用中表现出色。 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法&#xff1a; 1&#xff09;对于给定的待分类项r…

Redis(十三)缓存双写一致性策略

文章目录 概述示例 缓存双写一致性缓存按照操作来分&#xff0c;细分2种读写缓存&#xff1a;同步直写策略读写缓存&#xff1a;异步缓写策略双检加锁策略 数据库和缓存一致性更新策略先更新数据库&#xff0c;再更新缓存先更新缓存&#xff0c;再更新数据库先删除缓存&#xf…

【el-tree 文字过长处理方案】

文字过长处理方案 一、示例代码二、关键代码三、效果图 一、示例代码 <divstyle"height: 600px;overflow: auto"class"text item"><el-treeref"tree":data"treeData":props"defaultProps"class"filter-tree&…

C++ 语法文件

程序运行时产生的数据都属于临时数据&#xff0c;程序结束就会被释放。 通过文件可以可以将数据持久化 c中对文件操作需要包含头文件fstream 文件的类型分为两种 1.文本文件 文件以文本的ASCII码形式存储在计算机中 2.二进制文件 稳重以文本的二进制形式存储在计算机中 用…

【云原生之kubernetes系列】--HPA自动伸缩

HPA自动伸缩 HorizontalPodAutoscaler&#xff08;简称 HPA &#xff09;自动更新工作负载资源&#xff08;例如Deployment或者Statefulset)&#xff0c;目的是让pod可以自动扩缩工作负载以满足业务需求。 水平扩缩意味着对增加的负载的响应是部署更多的Pod。这与“垂直&…

MIT_线性代数笔记:第 34 讲 总复习

目录 试题1试题2试题3试题4试题5 本讲为线性代数课程总复习&#xff0c;复习的方法就是做往年试题。 试题1 1&#xff09;已知 Ax [ 1 0 0 ] \begin{bmatrix} 1\\0\\0 \end{bmatrix} ​100​ ​ 无解&#xff0c;Ax [ 0 1 0 ] \begin{bmatrix} 0\\1\\0 \end{bmatrix} ​010​ …

锐捷VSU和M-LAG介绍

参考网站 堆叠、级联和集群的概念 什么是堆叠&#xff1f; 框式集群典型配置 RG-S6230[RG-S6501-48VS8CQ]系列交换机 RGOS 12.5(4)B1005版本 配置指南 总结 根据以上的几篇文章总结如下&#xff1a; 级联&#xff1a;简单&#xff0c;交换机相连就叫级联&#xff0c;跟搭…

2-1 动手学深度学习v2-Softmax回归-笔记

回归 VS 分类 回归估计一个连续值分类预测一个离散类别 从回归到多类分类 回归 单连续数值输出输出的区间&#xff1a;自然区间 R \mathbb{R} R损失&#xff1a;跟真实值的区别 分类 通常多个输出&#xff08;这个输出的个数是等于类别的个数&#xff09;输出的第 i i i…

0-MQTT基础使用教程【学习】

文件路径 MQTT基础使用教程1. MQTT1.1 MQTT简介1.1.1 什么是MQTT1.1.2 设计原则1.1.3 应用领域1.2 MQTT协议相关概念1.2.1 MQTT协议实现方式1.2.2 MQTT协议中的方法1.3 消息服务质量QoS1.3.1 消息服务质量QoS三个等级1.3.2 发布与订阅QoS1.4 Topic通配符匹配规则2. EMQX2.1 EMQ…

工程机械设备通讯如何选?CAN控制器 以太网控制器

在工程机械设备的通讯世界中&#xff0c;有四种主流的通讯方式各领风骚。它们各有特色&#xff0c;适用于不同的场景和需求。让我们一起来深入了解它们&#xff0c;看看如何为自己的设备选择最合适的通讯方式吧&#xff01; 以太网通讯 特点速览&#xff1a;高速、稳如磐石、…

IP代理在网络中解决了哪些问题?代理IP使用时效是什么意思?

随着互联网的普及和发展&#xff0c;IP代理作为一种网络工具&#xff0c;被广泛应用于各种场景。IP代理的使用可以解决很多网络中的问题&#xff0c;提高网络访问的速度和安全性。本文将详细介绍IP代理在网络中解决的问题&#xff0c;以及代理IP使用时效的含义。 一、IP代理在网…

用python实现pdf按页切割,以及将pdf转成图片

我们经常遇到需要切割pdf的时候&#xff0c;但是常规手段很难做到 我们可以利用python脚本来实现 需要安装几个库 tk PyPDF2 PyMuPDF pyinstaller 上图&#xff01; 查看结果 切割pdf转存成图像 那我们来详细说一下使用方法 1.输入PDF位置:这里没什么好说的&#xff0c…

vue3:24—组件通信方式

1、props 子组件也可以如下调用父组件的方法 2、自定义事件 &#xff08;emit&#xff09; 3、mitt&#xff08;任意组件的通讯&#xff09; 1. pubsub 2. $bus 3. mitt 接收数据的:提前绑定好事件(提前订阅消息)提供数据的:在合适的时候触发事件发布消息) 安装mitt npm i…

NLP深入学习:《A Survey of Large Language Models》详细学习(三)

文章目录 1. 前言2. 预训练2.1 数据搜集与准备2.1.1 数据源2.1.2 数据预处理2.1.3 数据调度 2.2 架构设计2.2.1 典型架构2.2.2 详细配置2.2.3 预训练任务2.2.4 长上下文建模2.2.5 解码策略 2.3 模型训练2.3.1 优化设置2.3.2 可扩展&#xff08;Scalable&#xff09;的训练技术 …