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

线程安全与线程池

概念:多个线程,同时操作同一个共享资源的时候,可能会出现业务安全问题。

出现线程安全问题的条件,原因:1.存在多个线程在同时执行    2.同时访问一个共享资源   3.存在修改该共享资源

线程同步:是线程安全问题的解决方案

线程安全的核心思想

让多个线程先后依次访问共享资源,这样就可以避免出现线程安全问题。

线程同步的常见方案

加锁:每次只允许一个线程加锁,加锁后才能进入访问,访问完毕后自动解锁,然后其他线程才能再加锁进来。

方式一:同步代码块

作用:把访问共享资源的核心代码给上锁,以此保证线程安全。

原理:每次只允许一个线程加锁后进入,执行完毕后自动解锁,其他线程才可以进行执行。

同步锁注意事项

对于当前同时执行的线程来说,同步锁必须是同一把(同一对象),否则会出现bug。

锁对象随便选择一个唯一的对象会影响到其他无关线程的执行

锁对象的使用规范:

建议使用共享资源作为锁对象,对于实例方法建议使用this作为锁对象。

对于静态方法建议使用字节码(类名.class)对象作为锁对象。

同步方法:

同步代码块还是同步方法好?

范围上:同步代码块锁的范围更小,同步方法锁的范围更大

可读性:同步方法更好

lock锁

线程池

线程池就是一个可以复用线程的技术

创建线程池

方法一:ThreadPoolExecutor创建线程池处理Runnable任务

ExecutorService

线程池的注意是是事项

处理Callable任务

ExecutorService的常用方法

方法二:通过Executors创建线程池

 并发/并行

进程

相关文章:

  • 审计- 1- 审计概述
  • python打卡训练营打卡记录day43
  • 【存储基础】【VFS】inodedentrysuper_block以及它们之间的关系
  • ER图递归关系画法,chen氏
  • 【JAVA】注解+元注解+自定义注解(万字详解)
  • 计算机组成原理——CPU的功能和基本结构
  • SQL进阶之旅 Day 12:分组聚合与HAVING高效应用
  • 【Pytorch学习笔记】模型模块06——hook函数
  • 蓝云APP:云端存储,便捷管理
  • 第2篇:数据库连接池原理与自定义连接池开发实践
  • 列表推导式(Python)
  • 题目 3230: 蓝桥杯2024年第十五届省赛真题-星际旅行
  • 通讯录Linux的实现
  • Linux中的mysql逻辑备份与恢复
  • 资源预加载+懒加载组合拳:从I/O拖慢到首帧渲染的全面优化方案
  • Higress项目解析(二):Proxy-Wasm Go SDK
  • 人工智能在智能制造业中的创新应用与未来趋势
  • 普中STM32F103ZET6开发攻略(二)
  • 《Effective Python》第六章 推导式和生成器——将迭代器作为参数传递给生成器,而不是调用 send 方法
  • 力扣刷题Day 68:搜索插入位置(35)
  • 品牌网站建设 优帮云/谁能给我个网址
  • 虚拟主机和网站的关系/seo优化官网
  • 梅州网站建设baidu/今日时政新闻
  • 成都六度网站建设/网站排名优化公司
  • 教做月嫂的网站有吗/品牌推广方案思维导图
  • 自己怎么做机构网站/bt种子磁力搜索