news 2026/5/8 2:28:34

JAVA进阶 THREAD学习12 多线程小结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JAVA进阶 THREAD学习12 多线程小结

多线程安全问题的应对

首先有前面的分析得出多线程的安全问题是由共享资源的修改混乱导致的。
那么我们根据这两个关键的点做出应对:

  1. 避开使用共享资源
    • 使用没有共享资源的模型
  2. 避开修改
    • 对共享资源只读不写
    • 使用不可修改的内容
  3. 直接应对线程安全问题
    • 原子性
    • 顺序性
    • 可见性

对比线程和进程

线程的优点

  1. 创建一个新线程的代价要比创建一个新进程小得多

  2. 与进程之间的切换相比,线程之间的切换需要操作系统做的工作要少很多

  3. 线程占用的资源要比进程少很多

  4. 能充分利用多处理器的可并行数量

  5. 在等待慢速I/O操作结束的同时,程序可执行其他的计算任务

  6. 计算密集型应用,为了能在多处理器系统上运行,将计算分解到多个线程中实现

  7. I/O密集型应用,为了提高性能,将I/O操作重叠。线程可以同时等待不同的I/O操作。

线程和进程的区别

  1. 进程是系统资源分配和调度的一个独立单位,线程是程序执行的最小单位
  2. 进程有自己的内存地址空间,进程只独享指令流执行的必要资源,如寄存器和栈
  3. 由于同一进程的线程 共享内存和文件资源,可以不通过内核进行直接通信
  4. 线程的创建、切换和终止效率更高

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 12:41:29

JAVA进阶 THREAD学习10 多线程案例--计时器

标准库中计时器的使用 Timer类的实例化对象TimerTask类的是实例化对象–在run方法中存放运行的代码延迟的时间(相对时间,相对于当前时间之后的多少毫秒等) 时间需要安排schedule public static void main(String[] args) {System.out.println…

作者头像 李华
网站建设 2026/5/5 19:36:15

面试 Java 基础八股文十问十答第二期

面试 Java 基础八股文十问十答第二期 作者:程序员小白条,个人博客 ⭐点赞⭐收藏⭐不迷路!⭐ 11.什么是反射?反射有哪些作用?反射在Sping中的体现 (1): 什么是反射? 反射可以在运行时获取到一个类的所有信息&#xf…

作者头像 李华
网站建设 2026/5/4 15:46:53

毫米波V2I网络的链路层仿真研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

作者头像 李华
网站建设 2026/5/1 11:05:37

2026最全Gemini学生优惠申请指南

Google 在 2025 年正式推出 Gemini 学生优惠计划,符合条件的学生可在2026年1月31日前通过认证免费获得价值约 $300 的 Google AI Pro 服务长达 15 个月。这意味着你可以零成本使用:Gemini Advanced(2.5 Pro / 3 系列模型)2TB Goog…

作者头像 李华
网站建设 2026/5/2 19:24:06

Google广告频繁被拒如何解决?附解决与防封指南

在出海广告投放中,谷歌广告是众多品牌和独立站的核心渠道之一。然而,不少投手在实操中频繁遭遇广告被拒登,甚至账户直接被封,严重影响投放进度和预算使用效率。那么,Google广告被拒的原因到底有哪些?如何快…

作者头像 李华