Java并发编程艺术阅读笔记(一)

1.什么是上下文切换

CPU通过时间片分配算法循环执行任务,执行完一个任务的时间片后就会切换到下一个任务。但是在切换任务之前会保存上一个任务的状态,在切换回该任务,会重新加载该任务的状态。这种状态的保存和加载称为上下文切换

2.并发一定会比串行执行快吗?

不一定,因为线程存在创建和上下文切换的开销

3.如何减小上下文切换的开销?

  • 无锁并发编程:不给数据加锁,而是把数据通过哈希算法分段,将各段分给各线程处理。
  • CAS算法:使用Atmoic包下的CAS算法,而不需要加锁。
  • 使用最少线程:避免创建不需要的线程。
  • 协程:在单线程里完成多任务的调度,并且在单线程里维持多个任务的调度。

4.如何避免死锁?

  • 避免一个线程同时获取多个锁。
  • 避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源。
  • 尝试使用定时锁,使用lock.tryLock(timeout)来替代使用内部锁机制。
  • 对于数据库锁,加锁和解锁必须在一个数据库连接里,否则会出现解锁失败的情况。

Java并发编程艺术阅读笔记(一)相关推荐

  1. Java并发编程艺术学习笔记(五)

    Java并发编程艺术学习笔记(五) Java并发容器和框架 Java为开发者也提供了许多开发容器和框架,可以从每节的原理分析来学习其中精妙的并发程序. 一.ConcurrentHashMap的实现原理 ...

  2. Java并发编程艺术----读书笔记(二)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/a724888/article/details/64214595  java并发编程艺术2 jav ...

  3. Java 并发编程艺术 读书笔记

    第 1 章 并发编程的挑战 1.1.3 如何减少上下文切换 减少上下文切换的方法有无锁并发编程.CAS 算法.使用最少线程和使用协程. 无锁并发编程.多线程竞争锁时,会引起上下文切换,所以多线程处理数 ...

  4. JAVA并发编程艺术读书笔记(1,2章节)

    第一章 并发编程的挑战 为什么要使用并发编程? 主要是为了更有效地利用资源.即使是单核的CPU也可以多线程执行程序,多线程实际上是CPU分配时间片给各个线程,因为时间片非常短,所以看起来就像在同事执行 ...

  5. Java并发编程艺术读书笔记

    1.多线程在CPU切换过程中,由于需要保存线程之前状态和加载新线程状态,成为上下文切换,上下文切换会造成消耗系统内存.所以,可合理控制线程数量. 如何控制: (1)使用ps -ef|grep appn ...

  6. java并发编程艺术——基础篇

    这篇文章目的是为了总结一下这段时间看<java并发编程艺术>学到的东西,尝试用自己的话说出来对java多线程的理解和使用. 一.什么是多线程,为什么要用多线程,多线程带来的挑战 多线程定义 ...

  7. 【java并发编程艺术学习】(一)初衷、感想与笔记目录

    不忘初心,方得始终. 学习java编程这么长时间,自认为在项目功能需求开发中没啥问题,但是之前的几次面试和跟一些勤奋的或者小牛.大牛级别的人的接触中,才发现自己的无知与浅薄. 学习总得有个方向吧,现阶 ...

  8. 极客时间《Java并发编程》学习笔记

      该领域是跟着"极客时间"平台的课程<Java并发编程>入门的,讲师是王宝令.说实话,这个领域如果抱着大部头的书就啃的话,由于缺少实践很难会建立一个体系,即不知道为什 ...

  9. java并发编程实践 读书笔记_Java - 并发编程实践(读书笔记)

    [注] 同步机制保证:1)原子性 2)内存可见性: Volatile变量只能保证:1)可见性: - 恰当的同步,同步的弱形式,确保对一个变量的更新以可预见的方式告知其他线程. [注] 用锁来协调访问变 ...

最新文章

  1. 【牛客网】安置路灯 C++
  2. 一个文件下载的工具类
  3. vue 相关技术文章集锦
  4. 一文看懂机器视觉工业相机与普通相机的区别
  5. java多线程的基本实现方式与示例
  6. oracle 二进制与运算,Oracle怎么操作进行二进制的比对
  7. 新手开发记录:把ListView、Adapter的逻辑捋顺,做一个微博热搜吧
  8. 【易语言界面开发系列教程之(EX_UI使用系列教程--EX组件(一键换肤))】
  9. Windows系统怎么将dmg文件转换为iso格式
  10. Android之布局详解
  11. 用continue计算100以内奇数和_Python入门19break和continue
  12. UniApp设置APP图标配置,不自动生成所有图标问题
  13. 论文的中期报告怎么写?
  14. 将坐标系统保存为一个文件.prj
  15. 致敬mentohust,路由器使用Socket认证华科校园网
  16. 怎么预防服务器的常见攻击
  17. zblog添加html标题出错,ZBLOG模板修改的一些技巧小结
  18. 计算机毕业设计SSM大学生体检管理系统【附源码数据库】
  19. Origin 如何输出高清图片
  20. vue-router(路由)详细教程

热门文章

  1. Zabbix监控之从zookeeper中获取Kafka消费进度和lag
  2. 仿真(Simulation)
  3. frequency bins解释
  4. 王春亮推拿正骨与按摩心理学高级师传培训班
  5. tableview的详解
  6. Tuning (调试)
  7. 超级用户su没有权限修改所属
  8. 雨听 | 英语学习笔记(七)~作文范文:学生退学
  9. SQL之substrate()函数用法
  10. 一文读懂运放的共模输入和输出