共享模型之工具

一、线程池

1.自定义线程池

共享模型之工具_多线程
步骤1:自定义拒绝策略接口
共享模型之工具_线程池_02
步骤2:自定义任务队列
共享模型之工具_缓存_03
共享模型之工具_线程池_04
共享模型之工具_自定义_05
步骤3:自定义线程池
共享模型之工具_多线程_06
共享模型之工具_多线程_07
共享模型之工具_缓存_08
步骤4:测试
共享模型之工具_缓存_09

二、ThreadPoolExecutor

1.线程池状态

共享模型之工具_自定义_10

2.构造方法

共享模型之工具_自定义_11
共享模型之工具_java_12
共享模型之工具_缓存_13
共享模型之工具_线程池_14

3.newFixedThreadPool

共享模型之工具_自定义_15

4.newCachedThreadPool

共享模型之工具_多线程_16
共享模型之工具_java_17

共享模型之工具_缓存_18

5.newSingleThreadExecutor

共享模型之工具_线程池_19

6.提交任务

共享模型之工具_线程池_20
共享模型之工具_线程池_21

7.关闭线程池

共享模型之工具_自定义_22
共享模型之工具_自定义_23
共享模型之工具_自定义_24
共享模型之工具_java_25

8.模式之Worker Thread

定义

共享模型之工具_线程池_26
共享模型之工具_多线程_27

饥饿

共享模型之工具_自定义_28
共享模型之工具_缓存_29
共享模型之工具_自定义_30

创建多少线程池合适

共享模型之工具_多线程_31

9.任务调度线程池

共享模型之工具_自定义_32
共享模型之工具_线程池_33
共享模型之工具_缓存_34
共享模型之工具_自定义_35
共享模型之工具_java_36

10.正确处理执行任务异常

方法1:主动捉异常

共享模型之工具_缓存_37

方法2:使用 Future

共享模型之工具_线程池_38

应用之定时任务

共享模型之工具_java_39
共享模型之工具_缓存_40

11.Tomcat 线程池

共享模型之工具_java_41
共享模型之工具_自定义_42
共享模型之工具_缓存_43

三、Fork/Join

1.概念

共享模型之工具_java_44

2.使用

共享模型之工具_线程池_45
共享模型之工具_线程池_46
共享模型之工具_java_47
共享模型之工具_缓存_48
共享模型之工具_缓存_49
共享模型之工具_线程池_50

四、J.U.C

1.AQS 原理

概述

共享模型之工具_多线程_51
共享模型之工具_缓存_52

实现不可重入锁

共享模型之工具_缓存_53
共享模型之工具_线程池_54
共享模型之工具_自定义_55

心得

共享模型之工具_缓存_56
共享模型之工具_缓存_57
共享模型之工具_多线程_58
共享模型之工具_缓存_59
共享模型之工具_缓存_60
共享模型之工具_线程池_61
共享模型之工具_线程池_62

2.ReentrantLock 原理

共享模型之工具_多线程_63

非公平锁实现原理

共享模型之工具_缓存_64
共享模型之工具_多线程_65
共享模型之工具_线程池_66
共享模型之工具_缓存_67
共享模型之工具_多线程_68
共享模型之工具_线程池_69
共享模型之工具_缓存_70
共享模型之工具_多线程_71
共享模型之工具_自定义_72
共享模型之工具_缓存_73
共享模型之工具_多线程_74
共享模型之工具_缓存_75

可重入原理

共享模型之工具_线程池_76
共享模型之工具_线程池_77

可打断原理

共享模型之工具_多线程_78
共享模型之工具_缓存_79
共享模型之工具_java_80

公平锁实现原理

共享模型之工具_多线程_81
共享模型之工具_java_82

条件变量实现原理

共享模型之工具_java_83
共享模型之工具_自定义_84
共享模型之工具_自定义_85
共享模型之工具_线程池_86
共享模型之工具_java_87
共享模型之工具_自定义_88
共享模型之工具_自定义_89
共享模型之工具_多线程_90
共享模型之工具_自定义_91
共享模型之工具_缓存_92

3.读写锁

ReentrantReadWriteLock

共享模型之工具_线程池_93
共享模型之工具_多线程_94
共享模型之工具_自定义_95
共享模型之工具_缓存_96
共享模型之工具_线程池_97
共享模型之工具_自定义_98

应用之缓存

缓存更新策略

共享模型之工具_多线程_99
共享模型之工具_缓存_100

读写锁实现一致性缓存

共享模型之工具_缓存_101
共享模型之工具_自定义_102
共享模型之工具_java_103

读写锁原理

共享模型之工具_多线程_104
共享模型之工具_自定义_105
共享模型之工具_线程池_106
共享模型之工具_自定义_107
共享模型之工具_自定义_108
共享模型之工具_线程池_109
共享模型之工具_线程池_110
共享模型之工具_线程池_111
共享模型之工具_缓存_112
共享模型之工具_自定义_113
共享模型之工具_java_114
共享模型之工具_缓存_115
共享模型之工具_线程池_116
共享模型之工具_缓存_117
共享模型之工具_缓存_118
共享模型之工具_多线程_119
共享模型之工具_多线程_120
共享模型之工具_java_121
共享模型之工具_线程池_122
共享模型之工具_缓存_123
共享模型之工具_线程池_124

StampedLock

共享模型之工具_多线程_125
共享模型之工具_缓存_126
共享模型之工具_缓存_127

4.Semaphore

基本使用

共享模型之工具_自定义_128

应用

共享模型之工具_线程池_129
共享模型之工具_java_130

原理

共享模型之工具_java_131
共享模型之工具_缓存_132
共享模型之工具_自定义_133
共享模型之工具_线程池_134
共享模型之工具_自定义_135
共享模型之工具_线程池_136
共享模型之工具_java_137
共享模型之工具_自定义_138
共享模型之工具_java_139
共享模型之工具_缓存_140
共享模型之工具_多线程_141
共享模型之工具_多线程_142
共享模型之工具_java_143
共享模型之工具_缓存_144

5.CountdownLatch

共享模型之工具_java_145
共享模型之工具_自定义_146
共享模型之工具_java_147
共享模型之工具_线程池_148
共享模型之工具_多线程_149
共享模型之工具_java_150
共享模型之工具_缓存_151
共享模型之工具_自定义_152
共享模型之工具_自定义_153

6.CyclicBarrier

共享模型之工具_自定义_154
共享模型之工具_多线程_155

7.线程安全集合类概述

共享模型之工具_多线程_156
共享模型之工具_线程池_157

8.ConcurrentHashMap

练习:单词计数

共享模型之工具_线程池_158
共享模型之工具_java_159
共享模型之工具_缓存_160
共享模型之工具_多线程_161
共享模型之工具_线程池_162

ConcurrentHashMap 原理

JDK 7 HashMap 并发死链

共享模型之工具_java_163
共享模型之工具_多线程_164
共享模型之工具_缓存_165
共享模型之工具_java_166
共享模型之工具_java_167
共享模型之工具_自定义_168
共享模型之工具_自定义_169
共享模型之工具_线程池_170
共享模型之工具_自定义_171

JDK 8 ConcurrentHashMap

共享模型之工具_线程池_172
共享模型之工具_线程池_173
共享模型之工具_自定义_174
共享模型之工具_缓存_175
共享模型之工具_缓存_176
共享模型之工具_缓存_177
共享模型之工具_缓存_178
共享模型之工具_java_179
共享模型之工具_线程池_180
共享模型之工具_自定义_181

JDK 7 ConcurrentHashMap

共享模型之工具_java_182
共享模型之工具_缓存_183
共享模型之工具_线程池_184
共享模型之工具_线程池_185
共享模型之工具_线程池_186
共享模型之工具_线程池_187
共享模型之工具_多线程_188
共享模型之工具_java_189
共享模型之工具_java_190
共享模型之工具_自定义_191
共享模型之工具_多线程_192

9.LinkedBlockingQueue 原理

基本的入队出队

共享模型之工具_多线程_193
共享模型之工具_线程池_194
共享模型之工具_自定义_195
共享模型之工具_线程池_196
共享模型之工具_java_197
共享模型之工具_缓存_198

加锁分析

共享模型之工具_自定义_199
共享模型之工具_自定义_200
共享模型之工具_java_201
共享模型之工具_缓存_202

性能比较

共享模型之工具_线程池_203

10.ConcurrentLinkedQueue

共享模型之工具_多线程_204

模仿 ConcurrentLinkedQueue

共享模型之工具_线程池_205
共享模型之工具_缓存_206
共享模型之工具_java_207
共享模型之工具_缓存_208

11.CopyOnWriteArrayList

共享模型之工具_线程池_209
共享模型之工具_自定义_210
共享模型之工具_多线程_211