Java并发编程的艺术

Java并发编程的艺术

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
免费试读
特惠满减专区满500减250、满200减100、满100减50活动详情

作品简介

本书结合JDK的源码介绍了Java并发框架、线程池的实现原理,帮助读者做到知其所以然。本书对原理的剖析不仅仅局限于Java层面,而是深入到JVM,甚至CPU层面来进行讲解,帮助读者从更底层看并发技术。

作者:方腾飞,魏鹏,程晓明

作品目录

  1. Java并发编程的艺术
  2. 前言
  3. 为什么要写这本书
  4. 本书特色
  5. 读者对象
  6. 如何阅读本书
  7. 勘误和支持
  8. 致谢
  9. 第1章 并发编程的挑战
  10. 1.1 上下文切换
  11. 1.2 死锁
  12. 1.3 资源限制的挑战
  13. 1.4 本章小结
  14. 第2章 Java并发机制的底层实现原理
  15. 2.1 volatile的应用
  16. 2.2 synchronized的实现原理与应用
  17. 2.3 原子操作的实现原理
  18. 2.4 本章小结
  19. 第3章 Java内存模型
  20. 3.1 Java内存模型的基础
  21. 3.2 重排序
  22. 3.3 顺序一致性
  23. 3.4 volatile的内存语义
  24. 3.5 锁的内存语义
  25. 3.6 final域的内存语义
  26. 3.7 happens-before
  27. 3.8 双重检查锁定与延迟初始化
  28. 3.9 Java内存模型综述
  29. 3.10 本章小结
  30. 第4章 Java并发编程基础
  31. 4.1 线程简介
  32. 4.2 启动和终止线程
  33. 4.3 线程间通信
  34. 4.4 线程应用实例
  35. 4.5 本章小结
  36. 第5章 Java中的锁
  37. 5.1 Lock接口
  38. 5.2 队列同步器
  39. 5.3 重入锁
  40. 5.4 读写锁
  41. 5.5 LockSupport工具
  42. 5.6 Condition接口
  43. 5.7 本章小结
  44. 第6章 Java并发容器和框架
  45. 6.1 ConcurrentHashMap的实现原理与使用
  46. 6.2 ConcurrentLinkedQueue
  47. 6.3 Java中的阻塞队列
  48. 6.4 Fork/Join框架
  49. 6.5 本章小结
  50. 第7章 Java中的13个原子操作类
  51. 7.1 原子更新基本类型类
  52. 7.2 原子更新数组
  53. 7.3 原子更新引用类型
  54. 7.4 原子更新字段类
  55. 7.5 本章小结
  56. 第8章 Java中的并发工具类
  57. 8.1 等待多线程完成的CountDownLatch
  58. 8.2 同步屏障CyclicBarrier
  59. 8.3 控制并发线程数的Semaphore
  60. 8.4 线程间交换数据的Exchanger
  61. 8.5 本章小结
  62. 第9章 Java中的线程池
  63. 9.1 线程池的实现原理
  64. 9.2 线程池的使用
  65. 9.3 本章小结
  66. 第10章 Executor框架
  67. 10.1 Executor框架简介
  68. 10.2 ThreadPoolExecutor详解
  69. 10.3 ScheduledThreadPoolExecutor详解
  70. 10.4 FutureTask详解
  71. 10.5 本章小结
  72. 第11章 Java并发编程实践
  73. 11.1 生产者和消费者模式
  74. 11.2 线上问题定位
  75. 11.3 性能测试
  76. 性能测试中使用的其他命令
  77. 11.4 异步任务池
  78. 11.5 本章小结
载入中

热门划线

  1. ·对于普通同步方法,锁是当前实例对象。·对于静态同步方法,锁是当前类的Class对象。·对于同步方法块,锁是Synchonized括号里配置的对象。8 人
  2. 减少上下文切换的方法有无锁并发编程、CAS算法、使用最少线程和使用协程。7 人
  3. 在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。7 人
  4. Java的并发采用的是共享内存模型7 人
  5. 线程作为操作系统调度的最小单元,多个线程能够同时执行,这将显著提升程序性能,在多核环境中表现得更加明显。7 人
  6. 同步是指程序中用于控制不同线程间操作发生相对顺序的机制。在共享内存并发模型里,同步是显式进行的。程序员必须显式指定某个方法或某段代码需要在线程之间互斥执行。在消息传递的并发模型里,由于消息的发送必须在消息的接收之前,因此同步是隐式进行的6 人
  7. 当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值刷新到主内存。5 人
  8. notify()或notifyAll()方法调用后,等待线程依旧不会从wait()返回,需要调用notify()或notifAll()的线程释放锁之后,等待线程才有机会从wait()返回。5 人
  9. monitorenter指令是在编译后插入到同步代码块的开始位置,而monitorexit是插入到方法结束处和异常处,JVM要保证每个monitorenter必须有对应的monitorexit与之配对。任何对象都有一个monitor与之关联,当且一个monitor被持有后,它将处于锁定状态。线程执行到monitorenter指令时,将会尝试获取对象所对应的monitor的所有权,即尝试获得对象的锁。4 人
  10. 无锁状态、偏向锁状态、轻量级锁状态和重量级锁状态4 人

喜欢这本书的人也喜欢