├── .gitignore ├── Ch0-Java并发编程基础 ├── 00-Java内存模型.md ├── 01-Java线程.md ├── 01-Java线程 │ ├── 01-Java线程-使用篇.md │ ├── 01-Java线程-原理篇.md │ ├── 01-Java线程-概念篇.md │ └── media │ │ ├── Java线程生命周期.jpeg │ │ ├── 三个线程的切换示例.jpg │ │ ├── 用户线程.jpg │ │ ├── 用户线程加轻量级进程.jpg │ │ ├── 轻量级进程.jpg │ │ └── 通用线程生命周期.jpeg ├── README.md ├── media │ └── 8个原子操作的执行连续性说明.png └── pic │ ├── Java内存结构.jpeg │ ├── Java并发编程-基础篇-并发会导致的问题的解决方法.png │ ├── Java线程-xmind.png │ └── 线程状态转换示意图.png ├── Ch1-保证线程安全的两个角度 ├── 00-保证线程安全的两个角度.md ├── 01-线程的安全性.md ├── 02-对象的安全共享.md └── pic │ ├── Ch2-线程安全性.png │ └── Ch3-对象的共享.png ├── Ch2-构造安全的并发应用程序 ├── 00-构造安全的并发应用程序.md ├── 01-如何构造线程安全类.md ├── 02-常用的并发基础构建模块.md ├── 03-线程池的使用.md ├── 04-安全取消线程.md ├── Pic │ ├── Ch4-对象的组合.png │ ├── ConcurrentHashMap内部结构.jpg │ ├── Executor框架的主要类和接口.png │ ├── FutureTask状态迁移图.jpg │ ├── FutureTask的get和cancel执行效果示意图.jpg │ ├── HashMap内部结构.jpg │ ├── Map简单类图.jpg │ └── 任务调度模型.jpg ├── xmind │ └── 线程池的使用.xmind └── 补充01-HashMap_HashTable_TreeMap.md ├── Ch3-Java并发高级主题 ├── 00-Java中的锁.md ├── 01-Java中13个原子操作类.md ├── 02-非阻塞同步机制.md └── 03-AQS框架.md ├── Ch4-活跃性与性能 ├── 00-避免活跃性危险.md ├── 01-Java程序的性能评估.md ├── 02-并发程序测试的陷阱.md └── pic │ └── Amdahl定律.png ├── README.md ├── XMind └── 极客时间Java并发编程实战.xmind ├── drawio └── Java并发编程-基础篇.drawio └── jcip-example-code ├── .gitignore ├── .idea ├── .gitignore ├── compiler.xml ├── misc.xml └── vcs.xml ├── jcip-example-code.iml ├── pom.xml └── src └── main └── java └── org └── jcip └── p1 ├── CallableDemo.java └── Caller.java /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/00-Java内存模型.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/00-Java内存模型.md -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/01-Java线程.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/01-Java线程.md -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/01-Java线程/01-Java线程-使用篇.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/01-Java线程/01-Java线程-使用篇.md -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/01-Java线程/01-Java线程-原理篇.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/01-Java线程/01-Java线程-原理篇.md -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/01-Java线程/01-Java线程-概念篇.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/01-Java线程/01-Java线程-概念篇.md -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/01-Java线程/media/Java线程生命周期.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/01-Java线程/media/Java线程生命周期.jpeg -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/01-Java线程/media/三个线程的切换示例.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/01-Java线程/media/三个线程的切换示例.jpg -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/01-Java线程/media/用户线程.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/01-Java线程/media/用户线程.jpg -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/01-Java线程/media/用户线程加轻量级进程.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/01-Java线程/media/用户线程加轻量级进程.jpg -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/01-Java线程/media/轻量级进程.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/01-Java线程/media/轻量级进程.jpg -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/01-Java线程/media/通用线程生命周期.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/01-Java线程/media/通用线程生命周期.jpeg -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/README.md -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/media/8个原子操作的执行连续性说明.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/media/8个原子操作的执行连续性说明.png -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/pic/Java内存结构.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/pic/Java内存结构.jpeg -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/pic/Java并发编程-基础篇-并发会导致的问题的解决方法.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/pic/Java并发编程-基础篇-并发会导致的问题的解决方法.png -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/pic/Java线程-xmind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/pic/Java线程-xmind.png -------------------------------------------------------------------------------- /Ch0-Java并发编程基础/pic/线程状态转换示意图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch0-Java并发编程基础/pic/线程状态转换示意图.png -------------------------------------------------------------------------------- /Ch1-保证线程安全的两个角度/00-保证线程安全的两个角度.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch1-保证线程安全的两个角度/00-保证线程安全的两个角度.md -------------------------------------------------------------------------------- /Ch1-保证线程安全的两个角度/01-线程的安全性.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch1-保证线程安全的两个角度/01-线程的安全性.md -------------------------------------------------------------------------------- /Ch1-保证线程安全的两个角度/02-对象的安全共享.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch1-保证线程安全的两个角度/02-对象的安全共享.md -------------------------------------------------------------------------------- /Ch1-保证线程安全的两个角度/pic/Ch2-线程安全性.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch1-保证线程安全的两个角度/pic/Ch2-线程安全性.png -------------------------------------------------------------------------------- /Ch1-保证线程安全的两个角度/pic/Ch3-对象的共享.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch1-保证线程安全的两个角度/pic/Ch3-对象的共享.png -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/00-构造安全的并发应用程序.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/00-构造安全的并发应用程序.md -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/01-如何构造线程安全类.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/01-如何构造线程安全类.md -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/02-常用的并发基础构建模块.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/02-常用的并发基础构建模块.md -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/03-线程池的使用.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/03-线程池的使用.md -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/04-安全取消线程.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/04-安全取消线程.md -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/Pic/Ch4-对象的组合.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/Pic/Ch4-对象的组合.png -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/Pic/ConcurrentHashMap内部结构.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/Pic/ConcurrentHashMap内部结构.jpg -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/Pic/Executor框架的主要类和接口.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/Pic/Executor框架的主要类和接口.png -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/Pic/FutureTask状态迁移图.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/Pic/FutureTask状态迁移图.jpg -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/Pic/FutureTask的get和cancel执行效果示意图.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/Pic/FutureTask的get和cancel执行效果示意图.jpg -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/Pic/HashMap内部结构.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/Pic/HashMap内部结构.jpg -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/Pic/Map简单类图.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/Pic/Map简单类图.jpg -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/Pic/任务调度模型.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/Pic/任务调度模型.jpg -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/xmind/线程池的使用.xmind: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/xmind/线程池的使用.xmind -------------------------------------------------------------------------------- /Ch2-构造安全的并发应用程序/补充01-HashMap_HashTable_TreeMap.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch2-构造安全的并发应用程序/补充01-HashMap_HashTable_TreeMap.md -------------------------------------------------------------------------------- /Ch3-Java并发高级主题/00-Java中的锁.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch3-Java并发高级主题/00-Java中的锁.md -------------------------------------------------------------------------------- /Ch3-Java并发高级主题/01-Java中13个原子操作类.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch3-Java并发高级主题/01-Java中13个原子操作类.md -------------------------------------------------------------------------------- /Ch3-Java并发高级主题/02-非阻塞同步机制.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch3-Java并发高级主题/02-非阻塞同步机制.md -------------------------------------------------------------------------------- /Ch3-Java并发高级主题/03-AQS框架.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch3-Java并发高级主题/03-AQS框架.md -------------------------------------------------------------------------------- /Ch4-活跃性与性能/00-避免活跃性危险.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch4-活跃性与性能/00-避免活跃性危险.md -------------------------------------------------------------------------------- /Ch4-活跃性与性能/01-Java程序的性能评估.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch4-活跃性与性能/01-Java程序的性能评估.md -------------------------------------------------------------------------------- /Ch4-活跃性与性能/02-并发程序测试的陷阱.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch4-活跃性与性能/02-并发程序测试的陷阱.md -------------------------------------------------------------------------------- /Ch4-活跃性与性能/pic/Amdahl定律.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/Ch4-活跃性与性能/pic/Amdahl定律.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/README.md -------------------------------------------------------------------------------- /XMind/极客时间Java并发编程实战.xmind: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/XMind/极客时间Java并发编程实战.xmind -------------------------------------------------------------------------------- /drawio/Java并发编程-基础篇.drawio: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/drawio/Java并发编程-基础篇.drawio -------------------------------------------------------------------------------- /jcip-example-code/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/jcip-example-code/.gitignore -------------------------------------------------------------------------------- /jcip-example-code/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /workspace.xml -------------------------------------------------------------------------------- /jcip-example-code/.idea/compiler.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/jcip-example-code/.idea/compiler.xml -------------------------------------------------------------------------------- /jcip-example-code/.idea/misc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/jcip-example-code/.idea/misc.xml -------------------------------------------------------------------------------- /jcip-example-code/.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/jcip-example-code/.idea/vcs.xml -------------------------------------------------------------------------------- /jcip-example-code/jcip-example-code.iml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/jcip-example-code/jcip-example-code.iml -------------------------------------------------------------------------------- /jcip-example-code/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/jcip-example-code/pom.xml -------------------------------------------------------------------------------- /jcip-example-code/src/main/java/org/jcip/p1/CallableDemo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/jcip-example-code/src/main/java/org/jcip/p1/CallableDemo.java -------------------------------------------------------------------------------- /jcip-example-code/src/main/java/org/jcip/p1/Caller.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TangBean/Java-Concurrency-in-Practice/HEAD/jcip-example-code/src/main/java/org/jcip/p1/Caller.java --------------------------------------------------------------------------------