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

面试知识储备-多线程

1.线程的概念

        线程使得在一个程序中可以同时执行多个任务。在 Java 应用程序中,多个线程可以同时运行,例如一个线程可以处理用户输入,另一个线程可以进行后台数据处理。

2.创建线程的方式

(1)重写thread类中的run方法,创建新的线程后使用start()方法中调用

(2)实现一个Runnable接口,在run方法中编写代码,使用时,实现了Runnable接口的对象传递给Thread类的构造函数

3.线程启动后不需要销毁

        当线程的任务执行完毕,即run()方法执行完成后,线程会自然进入死亡状态,此时会被垃圾回收器回收资源。

4.线程不一定要在启动类中使用

        可以在任一类中,比如订单服务类,同时处理发送通知邮件和更新库存等

5.线程池的概念

        线程池是一组预先创建好的线程,它们处于等待状态,随时准备执行任务。当有任务需要执行时,线程池中的一个线程会被分配来执行该任务。任务执行完成后,线程不会被销毁,而是返回线程池继续等待下一个任务。

6.线程池的优势

        ①可以复用线程,减少创建和销毁等耗时操作

        ②控制线程数量,避免资源竞争

        ③自动管理线程的生命周期,比如分配任务 ,回收线程等

7.创建线程池的方式

(1)创建固定大小的线程池:使用Executors.newFixedThreadPool(int nThreads)方法

   ExecutorService executorService = Executors.newFixedThreadPool(5);

(2)创建可缓存的线程池:使用Executors.newCachedThreadPool()方法,线程在 60 秒内没有被使用就会被回收。

(3)使用Executors.newSingleThreadExecutor()方法可以创建一个单线程的线程池

(4)ThreadPoolExecutor类直接创建一个自定义的线程池,灵活地控制线程池的参数,如核心线程数、最大线程数、线程空闲时间、任务队列等。

8.Lambda表达式的写法

        Lambda 表达式可以理解为一种简洁的匿名函数写法。它由参数列表、箭头符号 “->” 和方法体组成。比如() -> updateInventory(order)  ()代表无参 ,同时参数也不可以有默认值

   Thread thread1 = new Thread(() -> {ClientConnection client = connections.get(1);if (client!= null) {System.out.println("Processing request for client " + client.getClientId() + " by thread: thread1");}}, "thread1");thread1.start();Thread thread2 = new Thread(() -> {ClientConnection client = connections.get(2);if (client!= null) {System.out.println("Processing request for client " + client.getClientId() + " by thread: thread2");}}, "thread2");thread2.start();

相关文章:

面试知识储备-多线程

1.线程的概念 线程使得在一个程序中可以同时执行多个任务。在 Java 应用程序中,多个线程可以同时运行,例如一个线程可以处理用户输入,另一个线程可以进行后台数据处理。 2.创建线程的方式 (1)重写thread类中的run方法…...

边缘计算插上AI的翅膀会咋样?

人工智能(Artificial Intelligence,AI)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学,是新一轮产业革命的重要驱动力量。2022年底发布的ChatGPT将人工智能技术上升到了一个新的高度。如今&#x…...

脉冲神经网络(SNN)论文阅读(六)-----ECCV-2024 脉冲驱动的SNN目标检测框架:SpikeYOLO

原文链接:CSDN-脉冲神经网络(SNN)论文阅读(六)-----ECCV-2024 脉冲驱动的SNN目标检测框架:SpikeYOLO Integer-Valued Training and Spike-Driven Inference Spiking Neural Network for High-performance …...

周报_2024/10/6

周报 时间 2024/9/30——2024/10/6 科研进展 写项目标书 实验了不同比例的标签加噪,模型效果随着标签加噪比例增加下降明显 下周计划 构造概念漂移数据集 借鉴其他文章中应对标签加噪的做法...

[深度学习][python]yolov11+bytetrack+pyqt5实现目标追踪

【算法介绍】 YOLOv11、ByteTrack和PyQt5的组合为实现高效目标追踪提供了一个强大的解决方案。 YOLOv11是YOLO系列的最新版本,它在保持高检测速度的同时,通过改进网络结构、优化损失函数等方式,提高了检测精度,能够同时处理多个…...

如何使用ssm实现基于Web的穿戴搭配系统的设计与实现+vue

TOC ssm784基于Web的穿戴搭配系统的设计与实现vue 第1章 绪论 1.1 研究背景 互联网概念的产生到如今的蓬勃发展,用了短短的几十年时间就风靡全球,使得全球各个行业都进行了互联网的改造升级,标志着互联网浪潮的来临。在这个新的时代&…...

JavaScript的设计模式

JavaScript设计模式是指在面向对象编程中,通过对类和对象进行抽象和泛化,提取出一些通用的设计思路和解决方案,以解决常见的软件设计问题。这些设计模式可以分为以下几类进行详细介绍: 一、创建型模式 1. 工厂模式(F…...

CIKM 2024 | 时空数据(Spatial-temporal)论文总结

CIKM 2024于10月21号-10月25号在美国爱达荷州博伊西举行(Boise, Idaho, USA) 本文总结了CIKM 2024有关时空数据(spatial-temporal data)的相关论文,主要包含交通预测,插补,事故预测&#xff0c…...

计算机毕业设计 网上体育商城系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...

【数据结构】什么是哈希表(散列表)?

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 📌哈希表的概念 📌哈希函数的构造方法 🎏直接定址法 🎏除留余数法 🎏平方取中法 🎏折叠法 &#x…...

【优选算法】(第二十三篇)

目录 快速选择算法(medium) 题目解析 讲解算法原理 编写代码 最⼩的k个数(medium) 题目解析 讲解算法原理 编写代码 快速选择算法(medium) 题目解析 1.题目链接:. - 力扣(L…...

Java.数据结构.HashSet

目录 1 基本概念 2 数据结构 3 常用操作 3.1 add(E e):向HashSet中添加元素 3.2 remove(Object o):从HashSet中移除元素 3.3 contains(Object o):判断HashSet中是否包含指定元素 3.4 size():返回HashSet中元素的个数 3.5 …...

关于懒惰学习与渴求学习的一份介绍

在这篇文章中,我将介绍些懒惰学习与渴求学习的算法例子,会介绍其概念、优缺点以及其python的运用。 一、渴求学习 1.1概念 渴求学习(Eager Learning)是指在训练阶段构建出复杂的模型,然后在预测阶段运用这个构建出的…...

sed 环境配置

参考项目来自这里: https://github.com/DCASE-REPO/DESED_task/tree/master/recipes/dcase2023_task4_baseline 1. 更新自己的 conda 避免一些包在旧的conda 环境中不存在; conda update conda使用conda 指定安装 对应版本 # CUDA 11.7 conda instal…...

黑神话:仙童,数据库自动反射魔法棒

黑神话:仙童,数据库自动反射魔法棒 Golang 通用代码生成器仙童发布了最新版本电音仙女尝鲜版十一及其介绍视频,视频请见:https://www.bilibili.com/video/BV1ET4wecEBk/ 此视频介绍了使用最新版的仙童代码生成器,将 …...

香江电器冲刺港交所上市:投资方提前撤资退出,因对赌协议而赔偿

近日,湖北香江电器股份有限公司(X.J. ELECTRICS (HU BEI) CO., LTD,下称“香江电器”)披露招股书,准备在港交所主板上市,国金证券为其独家保荐人。据贝多财经了解,香江电器曾计划在A股上市&…...

SpringSecurity实现自定义登录接口

SpringSecurity实现自定义登录接口 1、配置类 ConfigClazz(SpringSecuriey的) //首先就是要有一个配置类Resourceprivate DIYUsernamePasswordAuthenticationFilter diyUsernamePasswordAuthenticationFilter;/*SpringSecurity配置*/Beanpublic Securit…...

深度解析:Tkinter 界面布局与优化技巧

目录 深度解析:Tkinter 界面布局与优化技巧1. Tkinter 布局管理简介如何选择合适的布局管理器 2. pack() 布局管理详解嵌套布局 3. grid() 布局管理详解行列合并 4. place() 精确布局详解5. Tkinter 界面优化技巧自适应布局响应式布局资源管理 6. 项目示例&#xff…...

RCE_无回显

<aside> &#x1f4a1; 无回显 </aside> 写文件 **curl -o shell.php <http://xxxxxx.txt> wget -O shell.php <http://xxxxxx.txt>**请求带出 **curl <http://requestbin.net/r/1kiej1p1?pcat> /flag|base64 curl xxd -p /flag.xxxxxx.dnslo…...

文心一言智能体——绿色生活管家

最近&#xff0c;我在参加文心一言智能体大赛&#xff0c;这是我的智能体地址绿色生活管家&#xff0c;点击即可访问&#xff0c;大家可以去向我的智能体提问&#xff0c;提五个问题左右即可&#xff0c;真的非常感谢大家&#xff01;好人一生平安&#x1f33c;&#x1f33c;&a…...

网站建设公司推荐:业内公认高水准网站制作公司一览

在数字化竞争日益激烈的2026年&#xff0c;企业官网已从单纯的信息展示窗口升级为品牌战略核心载体与业务增长引擎。面对市场上众多的网站建设服务商&#xff0c;企业如何精准匹配需求&#xff1f;本文作为第三方深度测评&#xff0c;从高端定制、模板建站、低成本快速上线三类…...

【免费下载】 UVM标准库源代码及用户指南资源

UVM标准库源代码及用户指南资源 简介 本仓库提供了统一验证方法论&#xff08;Universal Verification Methodology, UVM&#xff09;的多个关键版本的源代码压缩包。UVM是一种用于电子设计验证的高级验证方法学&#xff0c;由Accellera Systems Initiative开发并标准化&#x…...

Graph-CoT:图神经网络结合思维链,实现复杂图结构推理

1. 项目概述&#xff1a;当图神经网络遇上思维链推理最近在复现和优化一些图相关的推理任务时&#xff0c;我反复遇到了一个瓶颈&#xff1a;传统的图神经网络模型在处理需要多步逻辑推理的问题时&#xff0c;比如社交网络中的影响力传播预测、知识图谱上的复杂问答&#xff0c…...

Spring AI + Ollama 深度实战:从 RAG 问答到 Graph Agent 全流程指南

场景 Spring AI RAG 检索增强生成&#xff1a;概念、实战与完整代码&#xff1a; https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/161055108 基于上面的基础&#xff0c;实现Graph工作流编排的简单示例。 大语言模型&#xff08;LLM&#xff09;在实际应用中面…...

无代码物联网水浸检测系统:基于Adafruit FunHouse与WipperSnapper的快速搭建指南

1. 项目概述&#xff1a;当漏水警报响起时&#xff0c;你正在悠闲地喝咖啡地下室的水管是不是又漏了&#xff1f;空调的冷凝水是不是溢出来了&#xff1f;放在角落的鱼缸有没有裂开&#xff1f;对于很多家庭用户、小型工作室管理员或是物业设施维护人员来说&#xff0c;水患是潜…...

从U-net到U-net++:探索跳跃连接的演进与优化

1. U-net的跳跃连接&#xff1a;从基础原理到核心价值 我第一次接触U-net是在处理医学影像分割项目时。当时试遍了各种模型&#xff0c;直到发现这个结构简洁却效果惊人的网络&#xff0c;才真正体会到跳跃连接&#xff08;Skip Connection&#xff09;的魔力。简单来说&#x…...

数据冗余与规范化的本质[数据库原理]

我们把它想象成整理一个乱七八糟的杂物间的过程。我们的目标是把所有东西分门别类放好&#xff0c;让找东西、放东西、更新东西都变得轻松&#xff0c;并且避免重复占用空间。 第一部分&#xff1a;为什么要“规范化”&#xff1f;—— 解决“大杂烩”表的三大痛点 假设我们管…...

告别CodeBlocks!在VScode里用CMake+MinGW搞定LVGL模拟器(附SDL2配置避坑指南)

从CodeBlocks到VScode&#xff1a;打造LVGL模拟器的现代化开发体验 在嵌入式GUI开发领域&#xff0c;LVGL以其轻量级和丰富的功能组件赢得了众多开发者的青睐。然而&#xff0c;官方推荐的CodeBlocks开发环境却让不少习惯了现代IDE的开发者感到不适——界面陈旧、插件生态有限、…...

保姆级教程:用VMware Workstation Pro 16给虚拟机装Win11,手把手教你用Ghost镜像(含UEFI/BIOS切换避坑)

VMware Workstation Pro 16实战&#xff1a;零基础Ghost安装Windows 11全流程解析 在虚拟化技术日益普及的今天&#xff0c;使用VMware Workstation Pro创建虚拟机已成为开发者测试新系统的首选方案。特别是对于Windows 11这样的新操作系统&#xff0c;直接在物理机上安装可能存…...

用ArcGIS做快餐店选址分析:手把手教你用OD方法分析KFC和麦当劳的聚集关系

用ArcGIS解码快餐店选址密码&#xff1a;OD方法揭示KFC与麦当劳的区位博弈 当你在商业区看到KFC和麦当劳总是比邻而居&#xff0c;是否好奇这背后隐藏着怎样的商业逻辑&#xff1f;本文将以空间分析的视角&#xff0c;带你用ArcGIS工具揭示两大快餐巨头的选址策略。不同于传统的…...