Practical Java High Concurrency Programming
Tags
Summary
Editor's review
Who it's for
A good fit for
- 已经会写Java基础代码、想系统掌握多线程与并发编程的开发人员
- 需要处理高并发场景、进行系统调优的后端工程师
- 准备Java技术面试、需要梳理JUC与内存模型的知识型读者
- 软件设计师、架构师中需要补足并发底层原理的人
Not a good fit for
- 完全没有Java基础、还不熟悉类与线程基本用法的初学者
- 只想读纯理论推导、对代码实战不感兴趣的研究型读者
- 做其他语言开发且短期内不接触Java生态的工程师
Reading tips
- 第1、2章不要跳过,内存模型和线程基础是后面所有内容的根基。
- 每个示例最好亲手敲一遍并改参数观察现象,并发问题光看结论记不牢。
- 读完第3章后可以回头对照自己项目里的线程池与锁,逐条排查隐患。
- 锁优化和Akka部分可先通读建立印象,等到遇到相应场景再精读。
About the publisher
The Publishing House of Electronics Industry is a comprehensive publisher distinguished by its focus on electronic information and related fields. Judging from the more than 3,000 titles in its catalogue, its publishing covers programming and design, artificial intelligence, computer science, finance and economics, photography, and social sciences, attending both to cutting-edge technology and to general readers. Representative titles include Factor Investing: Methods and Practice, x86 Assembly Language: From Real Mode to Protected Mode, The RISC-V Reader, Artificial Intelligence: Speech Recognition, Understanding and Practice, Phased Array Radar Technology, Radar Target Characteristics, and 100 Go Mistakes and How to Avoid Them, most of which centre on technical methods and engineering practice. Its authors include Shi Chuan, Li Zhong, Wang Xiaobo, David Patterson, Andrew Waterman, and Yu Zihao, among others from China and abroad. Owing to limited public information, no further publishing features are elaborated here.
Contents
- Chapter 1 Entering the Parallel World
- 1.1 Parallel Computing at a Crossroads
- 1.2 Synchronous and Asynchronous, Concurrency and Parallelism, Critical Sections, Blocking and Non-blocking, Deadlock, Starvation and Livelock
- 1.3 Concurrency Levels: Blocking, Starvation-Free, Obstruction-Free, Lock-Free, Wait-Free
- 1.4 Amdahl's Law and Gustafson's Law
- 1.5 The Java Memory Model: Atomicity, Visibility, Ordering and the Happens-Before Rules
- Chapter 2 Fundamentals of Java Parallel Programs
- 2.1 Basic Thread Operations: Creating, Terminating, Interrupting, wait/notify, suspend/resume, join/yield
- 2.2 volatile and the Java Memory Model
- 2.3 Thread Groups, Daemon Threads and Thread Priorities
- 2.4 Thread Safety and the synchronized Keyword
- 2.5 Hidden Errors in Programs: ArrayList and HashMap Under Concurrency, Incorrect Locking
- Chapter 3 The JDK Concurrency Package
- 3.1 Synchronization Control: Reentrant Locks, Condition, Semaphore, ReadWriteLock, CountDownLatch, CyclicBarrier, LockSupport, AQS
- 3.2 Thread Pools: Internal Implementation, Rejection Policies, ThreadFactory, Thread Count Optimization, the Fork/Join Framework
- 3.3 Concurrent Containers: ConcurrentHashMap, ConcurrentLinkedQueue, CopyOnWriteArrayList, BlockingQueue, Skip Lists
- Chapter 4 Lock Optimization and Points to Note
- 4.1 Reducing Lock Hold Time, Reducing Lock Granularity, Read-Write Separation Locks, Lock Separation, Lock Coarsening
- 4.2 Virtual Machine Lock Optimization: Biased Locking, Lightweight Locking, Spin Locks, Lock Elision
- 4.3 ThreadLocal and ThreadLocalRandom
- 4.4 Lock-Free Programming and CAS: AtomicInteger, Unsafe, AtomicReference, AtomicStampedReference and the Various Atomic Classes
- 4.5 Issues Related to Deadlock
- Chapter 5 Parallel Patterns and Algorithms
- 5.1 The Singleton Pattern and the Immutable Pattern
- 5.2 The Producer-Consumer Pattern and Its Lock-Free Implementation: Disruptor and the False Sharing Problem
- 5.3 The Future Pattern and Guava Support
- 5.4 Parallel Pipelines, Parallel Search and Parallel Sorting
- 5.5 Parallel Algorithms for Matrix Multiplication, Network NIO and AIO
- Chapter 6 Java 8 and Concurrency
- 6.1 Fundamentals of Functional Programming and Lambda Expressions
- 6.2 Parallel Streams and Parallel Sorting
- 6.3 CompletableFuture
- 6.4 StampedLock, LongAdder and LongAccumulator
- 6.5 Enhancements to ConcurrentHashMap and the Publish-Subscribe Pattern
- Chapter 7 Building High-Concurrency Programs with Akka
- 7.1 The Actor Model and Getting Started with Akka
- 7.2 Message Delivery, Actor Lifecycle and Supervision Strategies
- 7.3 Message Routing, Built-in State Transitions and the Ask Pattern
- 7.4 Agents and Software Transactional Memory
- 7.5 Implementing a Concurrent Particle Swarm Algorithm with Akka
FAQ
这本书需要什么基础才能读?
这本书和《Java并发编程实战》有什么区别?
书中内容对应哪个Java版本?
适合用来准备面试吗?
Comments
Find this book
This site is an index: you start “Search all sources” in your browser, and the entries it lists all point to third-party sites; please judge their availability yourself.
About the author
Ge Yiming is a programming author about whom limited public information is available. His confirmed representative work is Practical Java High-Concurrency Programming (3rd Edition). The book falls under programming design, and its title and successive editions suggest a practice-oriented focus on Java concurrency programming that has been revised over time, indicating a degree of continuity among technical readers. In the absence of clear information about his personal life, education, professional career, awards, or honors, no further speculation about his background should be made. Based on the available work, Ge Yiming's writing is practice-oriented and centers on high-concurrency programming, serving developers who wish to gain a deeper understanding of Java concurrency mechanisms. His profile is therefore best framed in terms of the subject matter and technical direction of his work rather than unverified personal achievements.
Guo Chao's publicly available information is currently limited, and his signed works span such varied fields as traditional culture, social policy, and information technology. In the area of literary appreciation, he took part in compiling Tai Gong Liu Tao, indicating an interest in ancient military classics and strategic culture. In the social sciences, his work Research on China's Disability Reporting System addresses data statistics and institutional development in the field of disability affairs. He also compiled A Project-Based Tutorial on College Information Technology, a textbook for university IT teaching that reflects a project-based learning approach. These works show Guo Chao moving across classical-text interpretation, social research, and textbook writing, with an emphasis on organizing knowledge and practical application; his style is pragmatic and his readership varied. Owing to the lack of biographical information, his personal history and academic background cannot yet be further introduced.