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

Java 核心知识 多线程 线程池

一 Java多线程Java核心知识体系7线程不安全分析Java核心知识体系8Java如何保证线程安全性Java核心知识体系9-并发与多线程线程基础Java核心知识体系10-线程管理Java中的多线程https://www.cnblogs.com/wxd0108/p/5479442.html面试题面试题多线程下单例模式下全局变量共享问题 当多个线程同时访问同一个方法的时候jvm会给每个线程分配单独的局域变量这样就不会出现问题了。面试题多线程调用单例类中的方法会不会造成线程安全问题 答案不会。 局部变量不会受多线程影响但成员变量会受到多线程影响。 多个线程应该是调用的同一个对象的同一个方法 如果方法里无成员变量那么不受任何影响 如果方法里有成员变量只有读操作不受影响存在写操作考虑多线程影响值面试题为什么需要线程池线程池的作用1.统一管理降低资源消耗2.提高响应速度3.提高线程可管理性 面试题线程池队列满了怎么处理线程出异常怎么处理线程的生命周期线程通常都有五种状态创建、就绪、运行、阻塞和死亡Thread 和 Runnable的区别实例化线程对象有所不同extends Thread t.start();implements Runnable new Thread(t).start();实现Runnable接口比继承Thread类所具有的优势1适合多个相同的程序代码的线程去处理同一个资源2可以避免java中的单继承的限制(不能访问父类的私有成员)3增加程序的健壮性代码可以被多个线程共享代码和数据独立4线程池只能放入实现Runable或callable类线程不能直接放入继承Thread的类run()和start()方法的区别run方法是线程的任务处理逻辑的入口方法它由Java虚拟机在运行相应线程时直接调用而不是由应用代码进行调用。调用run方法其实就是当作普通的方法的方式调用。并没有创建一个线程程序中依旧只有一个主线程必须等到run()方法里面的代码执行完毕才会继续执行下面的代码这样就没有达到加入线程的目的。start方法是启动相应的线程。启动一个线程实际是请求Java虚拟机运行相应的线程而这个线程何时能够运行是由线程调度器决定的。start()调用并不表示相应线程已经开始运行这个线程可能稍后运行。创建并启动一个线程真正实现了多线程。无需等待run()方法中的代码执行完毕就可以接着执行下面的代码。此时start()的这个线程处于就绪状态当得到CPU的时间片后就会执行其中的run()方法。这个run()方法包含了要执行的这个线程的内容run()方法运行结束线程终止。start()方法能够异步的调用run()方法但是直接调用run()方法却是同步的无法达到多线程的目的。因此只用通过调用线程类的start()方法才能达到多线程的目的。双重校验锁的单例模式volatile修饰singleton很有必要voliatile防止了指令重排在这里插入代码片volatile关键字在现在的java模型下线程可以把变量保存在本地内存比如寄存器中而不是直接在主内存中进行读写这就可能造成一个线程在主内存中修改了一个变量的值而另外一个线程还继续使用它在寄存器中的变量的拷贝造成数据不一致。sychronized关键字sychronized和volatile的区别实现Runnable和Callable接口的区别https://www.jianshu.com/p/27b7340d8470二 线程池 Executors线程池的作用在实践应用中创建线程池主要是为了减少资源开销减少每次创建、销毁线程的开销提高响应速度请求到来时线程已创建好可直接执行提高响应速度提高线程的可管理性线程是稀缺资源需根据情况加以限制确保系统稳定运行Java中创建线程的4种方式1.继承Thread 2.实现Runnable接口3.实现Callable接口4.线程池Executors 和 ThreadPoolExecutor 自定义线程池。通过 Callable 和 Future 创建线程1.创建 Callable 接口的实现类并实现 call() 方法该 call() 方法将作为线程执行体并且有返回值。2.创建 Callable 实现类的实例使用 FutureTask 类来包装 Callable 对象该 FutureTask 对象封装了该 Callable 对象的 call() 方法的返回值。3.使用 FutureTask 对象作为 Thread 对象的 target 创建并启动新线程。4.调用 FutureTask 对象的 get() 方法来获得子线程执行结束后的返回值。Java自带的四种线程池创建方式Executors.newFixedThreadPool(5); //一个饭店5张桌子Executors.newSingleThreadPool(); //一个饭店1张桌子Executors.newCachedThreadPool(); //一个饭店可以动态加桌子newScheduledThreadPool // 定时任务线程池JAVA线程池的四种创建方式和使用场景 https://blog.csdn.net/hekai7217/article/details/147090211关于阿里规约线程资源必须通过线程池提供不允许在应用中自行显式创建线程。线程池不允许Executors去创建而是通过ThreadPoolExecutor的方式这样的处理方式让写的同学更加明确线程池的运行规则规避资源耗尽的风险。说明Executors返回的线程池对象的弊端如下1FixedThreadPool和SingleThreadPool允许的请求队列长度为Integer.MAX_VALUE可能会堆积大量的请求从而导致OOM。2CachedThreadPool允许的创建线程数量为Integer.MAX_VALUE可能会创建大量的线程从而导致OOM。完参考资料Java中的多线程https://www.cnblogs.com/wxd0108/p/5479442.htmlvolatile的设计原理https://mp.weixin.qq.com/s/WTqdSz-lc5zzelJgk4Co8gThreadPoolExecutorhttps://mp.weixin.qq.com/s/ROQMBFw0DWM4sSP-sdy-IA

相关文章:

Java 核心知识 多线程 线程池

一 Java多线程 Java核心知识体系7:线程不安全分析 Java核心知识体系8:Java如何保证线程安全性 Java核心知识体系9-并发与多线程:线程基础 Java核心知识体系10-线程管理 Java中的多线程 https://www.cnblogs.com/wxd0108/p/5479442.html 面…...

OpenClaw | 核心设计哲学:以Gateway为中心的可插件化单体系统

在当今AI Agent框架百花齐放的时代,每个项目都在探索如何构建既强大又灵活的个人AI助手系统。OpenClaw作为这一领域的后起之秀,其设计哲学独树一帜——它没有选择微服务架构的复杂性,也没有采用完全去中心化的设计,而是创造性地提…...

VQE算法在量子化学计算中的应用与优化

1. 量子化学计算中的VQE算法概述量子变分本征求解器(VQE)作为当前NISQ(含噪声中等规模量子)时代最具实用价值的量子算法之一,其核心思想是将量子处理器作为协处理器,与经典优化器协同工作,通过参数化量子电路逼近分子哈密顿量的基态能量。这种…...

【中等】矩阵的最小路径和-Java:经典动态规划方法

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程大家好!欢迎来到我的网站! 人工智能被认为是一种拯救世界、终结世界的技术。毋庸置疑&#x…...

NVFP4:Blackwell架构下的4位低精度推理技术解析

1. NVFP4:Blackwell架构下的高效低精度推理新标准在AI模型部署的实际场景中,我们常常面临这样的困境:模型精度与推理效率就像天平的两端,提升一方往往意味着牺牲另一方。三年前当我第一次尝试将FP32模型量化到INT8时,即…...

【相当困难】斐波那契系列问题的递归和动态规划-Java:补充题目2

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程大家好!欢迎来到我的网站! 人工智能被认为是一种拯救世界、终结世界的技术。毋庸置疑&#x…...

MySQL数据库教程

MySQL官方参考手册 数据库入门 数据库和表的基本操作 数据操作 单表查询 多表操作 索引 视图 事务 数据库编程 数据库管理与维护 数据库设计 数据库建模 The --host option (short form -h) tells the mysql client program the hostname or IP address of the MyS…...

Qwen3.5-9B-AWQ-4bit Qt桌面应用开发:跨平台AI助手客户端

Qwen3.5-9B-AWQ-4bit Qt桌面应用开发:跨平台AI助手客户端 1. 为什么需要本地化AI助手 在数字化办公场景中,我们经常遇到需要快速获取信息、处理文档或编写代码的需求。传统的云端AI服务虽然强大,但存在响应延迟、隐私顾虑和网络依赖等问题。…...

Particalground完全配置手册:20个参数详解与实战案例

Particalground完全配置手册:20个参数详解与实战案例 【免费下载链接】particleground A jQuery plugin for snazzy background particle systems 项目地址: https://gitcode.com/gh_mirrors/pa/particleground Particalground是一款强大的jQuery粒子背景插件…...

llvmlite与Numba的完美结合:打造高性能Python应用的终极方案

llvmlite与Numba的完美结合:打造高性能Python应用的终极方案 【免费下载链接】llvmlite A lightweight LLVM python binding for writing JIT compilers 项目地址: https://gitcode.com/gh_mirrors/ll/llvmlite 在Python开发领域,性能优化一直是开…...

PostCSS-pxtorem性能优化:提升CSS转换效率的7个关键方法

PostCSS-pxtorem性能优化:提升CSS转换效率的7个关键方法 【免费下载链接】postcss-pxtorem Convert pixel units to rem (root em) units using PostCSS 项目地址: https://gitcode.com/gh_mirrors/po/postcss-pxtorem PostCSS-pxtorem是一款强大的PostCSS插…...

RTRootNavigationController 高级用法:禁用交互式返回与动画定制

RTRootNavigationController 高级用法:禁用交互式返回与动画定制 【免费下载链接】RTRootNavigationController Implicitly make every view controller has its own navigation bar 项目地址: https://gitcode.com/gh_mirrors/rt/RTRootNavigationController …...

7个TanStack Query网络优化策略:从入门到精通的请求效率提升指南

7个TanStack Query网络优化策略:从入门到精通的请求效率提升指南 【免费下载链接】query 🤖 Powerful asynchronous state management, server-state utilities and data fetching for the web. TS/JS, React Query, Solid Query, Svelte Query and Vue …...

如何用Preact构建高性能社交互动界面:完整开发指南

如何用Preact构建高性能社交互动界面:完整开发指南 【免费下载链接】preact ⚛️ Fast 3kB React alternative with the same modern API. Components & Virtual DOM. 项目地址: https://gitcode.com/gh_mirrors/pr/preact Preact是一个仅4kB大小的现代J…...

Arm AutoFDO优化与ADB连接实战指南

1. Arm Lumex软件AutoFDO优化与ADB连接实战指南在移动应用和嵌入式系统开发中,性能优化始终是开发者面临的核心挑战。Arm Lumex软件提供的AutoFDO(自动反馈导向优化)技术,通过分析程序实际运行时的行为特征来指导编译器进行针对性…...

实测Yi-Coder-1.5B:52种编程语言,一键解决代码难题

实测Yi-Coder-1.5B:52种编程语言,一键解决代码难题 1. 为什么选择Yi-Coder-1.5B 1.1 轻量级但功能强大 Yi-Coder-1.5B是一个仅有15亿参数的开源代码模型,却支持52种主流编程语言。与动辄几十GB的大型模型相比,它能在普通笔记本…...

PyTorch Image Models云部署终极指南:AWS/Azure/GCP快速配置

PyTorch Image Models云部署终极指南:AWS/Azure/GCP快速配置 【免费下载链接】pytorch-image-models The largest collection of PyTorch image encoders / backbones. Including train, eval, inference, export scripts, and pretrained weights -- ResNet, ResNe…...

农村博士的消费困境:攒多少钱才敢买杯奶茶?

从田埂到实验室:农村读博的我,到底要攒够多少钱,才敢给自己花30块买一杯奶茶? 这里写目录标题 从田埂到实验室:农村读博的我,到底要攒够多少钱,才敢给自己花30块买一杯奶茶? 我们不敢消费,从来不是没钱,是背上了三道无形的枷锁 第一道枷锁:倾全家之力托举的“愧疚牢…...

DevDocs安全防护机制:防止XSS和内容污染的完整指南

DevDocs安全防护机制:防止XSS和内容污染的完整指南 【免费下载链接】devdocs API Documentation Browser 项目地址: https://gitcode.com/GitHub_Trending/de/devdocs DevDocs作为一款API文档浏览器,在处理大量用户输入和第三方内容时&#xff0c…...

6种核心降维算法原理与Python实战指南

1. 降维算法概述与核心价值在数据科学和机器学习领域,高维数据就像一间塞满杂乱物品的储藏室——虽然包含所有信息,但难以有效利用。我处理过的真实业务数据集中,经常遇到包含数百甚至数千个特征的情况,这不仅导致计算效率低下&am…...

枯木想要逢春: 我们不能因为过去的伤害而心死

破镜难重圆,枯木却逢春:好的感情,从来不是修镜子,而是养根 目录 破镜难重圆,枯木却逢春:好的感情,从来不是修镜子,而是养根 破镜难重圆,碎的从来不是镜子,是信任 枯木能逢春,活的从来不是运气,是根基 养根的第一步,是停止互相砍伐 养根的第二步,是找回共同的土壤…...

哈希表实战指南:从冲突解决到性能优化的完整教程

哈希表实战指南:从冲突解决到性能优化的完整教程 【免费下载链接】interview 📚 C/C 技术面试基础知识总结,包括语言、程序库、数据结构、算法、系统、网络、链接装载库等知识及面试经验、招聘、内推等信息。This repository is a summary of…...

【VS Code Copilot Next 工作流自动化终极指南】:20年IDE专家亲授从零配置到生产级落地的7大黄金法则

更多请点击: https://intelliparadigm.com 第一章:VS Code Copilot Next 自动化工作流的核心价值与演进脉络 VS Code Copilot Next 并非简单升级,而是将 AI 编程助手从“补全建议者”重塑为“上下文感知的工作流协作者”。其核心价值在于深度…...

GORM微服务通信:10个高效数据交换方案终极指南

GORM微服务通信:10个高效数据交换方案终极指南 【免费下载链接】gorm The fantastic ORM library for Golang, aims to be developer friendly 项目地址: https://gitcode.com/gh_mirrors/gor/gorm GORM是Golang生态中一款开发者友好的ORM库,专为…...

如何用PyTorch Image Models轻松实现MoCo v2对比学习:完整实战指南

如何用PyTorch Image Models轻松实现MoCo v2对比学习:完整实战指南 【免费下载链接】pytorch-image-models The largest collection of PyTorch image encoders / backbones. Including train, eval, inference, export scripts, and pretrained weights -- ResNet,…...

揭秘MCP 2026标准在农田边缘节点的适配断点:5类传感器失联根因分析及固件级修复指南

更多请点击: https://intelliparadigm.com 第一章:MCP 2026标准在农田边缘节点的适配断点全景图 MCP 2026(Multi-layer Control Protocol v2026)是面向农业物联网场景设计的新一代边缘协同通信协议,其核心目标是在资源…...

如何用GORM实现自动化数据处理:从定时任务到高效数据管理的完整指南

如何用GORM实现自动化数据处理:从定时任务到高效数据管理的完整指南 【免费下载链接】gorm The fantastic ORM library for Golang, aims to be developer friendly 项目地址: https://gitcode.com/gh_mirrors/gor/gorm GORM是Golang生态中一款开发者友好的O…...

CryFS性能优化指南:提升加密文件系统读写速度的完整方案

CryFS性能优化指南:提升加密文件系统读写速度的完整方案 【免费下载链接】cryfs Cryptographic filesystem for the cloud 项目地址: https://gitcode.com/gh_mirrors/cr/cryfs CryFS是一款专注于云存储场景的加密文件系统,通过强大的加密技术保护…...

Spring Security RBAC:基于角色的动态权限认证系统终极指南

Spring Security RBAC:基于角色的动态权限认证系统终极指南 【免费下载链接】spring-boot-demo 🚀一个用来深入学习并实战 Spring Boot 的项目。 项目地址: https://gitcode.com/gh_mirrors/sp/spring-boot-demo Spring Boot 项目中,安…...

终极Docker配置管理指南:环境变量与密钥安全管理最佳实践

终极Docker配置管理指南:环境变量与密钥安全管理最佳实践 【免费下载链接】awesome-docker :whale: A curated list of Docker resources and projects 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-docker Docker作为容器化技术的领军者&#xff0…...