1. 锁的思路: 将多个线程对共享数据的并发访问转换为串行访问,即一个共享数据一次只能被一个线程访问,该线程访问结束后其他线程才能对其进行访问。锁(lock)就是利用这种思路以保障线程安全的线程同步机制。

2. 线程同步机制是一套用于协调线程间的数据访问(Data access)及活动(Activity)的机制,该机制用于保障线程安全以及实现这些线程的共同目标。

java平台中锁的调度策略也包括公平策略和非公平策略,相应的锁就被称为公平锁和非公平锁。内部锁属于非公平锁,而显示锁既支持公平锁又支持非公平锁。

3. 锁的作用: 锁能够保护共享数据以实现线程安全,其作用包括保障原子性,保障可见性和保障有序性。

4. 可重入性(Reentrancy):一个线程在其持有一个锁的时候能否再次(或者多次)申请该锁。如果一个线程有一个锁的时候还能够继续成功申请该锁,那么我们就称该锁是可重入的(reentrant),否则我们就称锁为非可重入的(Non-reentrant)。

5. java平台中的任何一个对象都有唯一一个与之关联的锁,这种锁被称为监视器(Monitor)或者内部锁(Intrinsic Lock).

6. 读写锁: 改进型的排他锁

7. 内存屏障

为了保障线程安全,我们需要使用java线程同步机制,而内存屏障则是java虚拟机在实现java线程同步机制时所使用的具体"工具".

《java多线程编程实战指南 核心篇》读书笔记三相关推荐

  1. Redis理解内存《Redis开发与运维读书笔记》

    文章目录 内存的消耗 内存划分 内存管理 内存优化 内存的消耗 可以使用info memory 查看内存消耗. 内存划分 对象内存 = sizeof(key) + sizeof(value) 应避免使 ...

  2. 【Redis】《Redis 开发与运维》笔记-Chapter12-开发运维的“ 陷阱”

    十二.开发运维的" 陷阱" 1.Linux配置优化之内存分配控制 1)vm.overcommit_memory Linux操作系统对大部分申请内存的请求都回复yes,以便能运行更多 ...

  3. Redis开发与运维 必备-电子书

    Redis开发与运维电子书 fulei出版 链接: https://pan.baidu.com/s/12rlHhOKP7_72GE8a74lN1g 密码: eep2 复制这段内容后打开百度网盘手机Ap ...

  4. 「Redis开发与运维」读书笔记

    第一章 初识Redis Redis的8个重要特性 速度快 内存存储数据 C语言实现 单线程架构,避免多线程竞争问题 Redis源码优化好 基于键值对的数据结构服务器 Redis 值可支持多种数据结构, ...

  5. <Redis开发与运维>一书阅读笔记记录

    文章目录 前言 第1章:初始redis 盛赞redis redis特性 redis使用场景 第2章:API的理解和使用 预备知识 全局命令 数据结构和内部编码 单线程架构 字符串 命令 内部编码 典型 ...

  6. 百度王一男: DevOps 的前提是拆掉业务-开发-测试-运维中间的三面墙

    这是一个创建于 375 天前的主题,其中的信息可能已经有所发展或是发生改变. 由数人云.优维科技.中生代社区联合发起的 系列 Meetup < DevOps&SRE 超越传统运维之道&g ...

  7. 《Redis开发与运维》读书笔记--初识Redis(一)

    目录 盛赞Redis Redis特性 redis使用场景 redis可以做什么? redis不可以做什么? 关于用好redis的两点建议 本章重点回顾 写在前面: 想必在写项目的过程中,我们很多时候都 ...

  8. 读书笔记:redis开发与运维 基础篇

     redis特性    1>速度快:redis所有数据都是存放在内存中,是redis速度快的主要原因,是有c编写,一般来说用c编写的程序距离操作系统近,执行速度更快,非阻塞I/O,使用epoll ...

  9. Redis开发与运维笔记_1 初识2 API

    目录 概述 第1章 初识Redis 1.1 盛赞Redis 1.2 Redis特性 1.3 配置.启动.操作.关闭Redis 第2章 API的理解和使用 2.1 预备 2.1.1 全局命令 2.1.2 ...

  10. Redis 开发与运维

    Getting Start 高性能 性能优势的体现 C语言实现的内存管理 epoll的I/O多路复用技术+IO连接/关闭/读写通过事件实现异步的非阻塞IO TCP协议 单线程架构,不会因为高并发对服务 ...

最新文章

  1. 揭示生命的奥秘——生物信息学
  2. 计算机室活动实施方案,微机室活动计划
  3. 红帽系列linux自行配置本地yum源
  4. 【DIY】玩转VFD荧光屏(一),自制VFD时钟全资料(原理图+源码+PCB)
  5. css中background-image背景图片路径设置
  6. 70% 产品经理都在考虑跳槽?还有哪些你不知道的行业真相
  7. mysql trim 索引_mysql强大的trim()函数
  8. WordPress主题Ashade2.0摄影展示 图片展示主题
  9. mysql执行sql流程_MySQL架构与SQL执行流程
  10. Python案例:计算softmax函数值
  11. 整理的一些实用工具网站
  12. SQL Server分组查询某最大值的整条数据(包含linq写法)
  13. 有关学习方面的资料如何进行打印
  14. 微信小程序canvas绘制图片真机不显示问题
  15. 关于“论文他引次数”、“检索号”及“ESI 高被引论文”的查询方法
  16. 如何避免自己发出的邮件被误判为垃圾邮件
  17. 家用路由器AP模式设置
  18. 基础代谢率、BMI、体脂肪率、肌肉量、体水分率,这些都是什么?
  19. 【爬虫实战】10应用Python网络爬虫——定向爬取百度百科文字
  20. 宽带和光纤宽带的区别

热门文章

  1. 【软件构造】第三章第三节 抽象数据型(ADT)
  2. 浅谈线上德州扑克平台的公平性
  3. 最常用的15大Eclipse开发快捷键技巧
  4. java 继承与多态
  5. 第二部分:S5PV210_关看门狗_1
  6. 电视剧中提到的 自然的 聊天对话 细节法则
  7. 【Android】Handler详解
  8. 浙江大学PAT上机题解析之1009. 说反话 (20)
  9. 贴一段数组动态扩容的代码
  10. redux 和 react-redux 部分源码阅读