- 2019-10-28 38
- 2019-10-17 1-3
- 2019-9-2 1-4
- 2019-09-14 12-17
- 2019-9-16 18-25
- 2019-9-16 1-2 并发编程一般都用在底层,分布式系统中间件,大数据等。平时的业务代码用不到。
- HDFS edits log 如何使用 volatile
- 2019-9-17 3-18
- 当一个线程sleep时, 可以调用这个线程的 interrupt 方法, 把线程唤醒。可以通过这种方式快速停止线程。
- 2019-9-18 19-33
- 21 MESI 缓存一致性协议, volatile 使用这个协议才能实现它的功能。
- 22 查 深入理解java虚拟机相关的内容或者文章
- 25 volatile 为什么不保证原子性
- 2019-9-19 34-47
- 2019-9-22 48-52 实现 HDFS 的 edits_log 功能。
- 2019-9-22 54-73
- 63 LongAdder 提供更好的并发吞吐量, 看源码如何实现分段加锁和加锁的迁移。
- 70 在对象之前获取原值,然后while循环设置,如果多线程并发,可能导致第二个线程死循环。
- 71 同理,在全量拉取和增量拉取之前获取版本号,0。如果全量先比较,就进行全量覆盖,此时增量忽略,出现错误;如果增量先比较,是正确的结果。 觉得应该在
- 2019-9-22 74-80
- 80 LockSupport 是JDK 提供的一个锁工具。
- 2019-9-23 81-89
- 81 第三个线程尝试加锁的时候, 会把创建一个node加到等待队列队尾,并且挂起当前线程。
- 86 unlock 时是如何唤醒等待线程的。
- 87 读写锁是怎么玩的。
- 88 利用stats的高低16位表示读写锁。读写锁共用一个 Sync 对象。
- 2019-9-24 90-95
- 91 读锁的实现 java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock.lock java.util.concurrent.locks.ReentrantReadWriteLock.Sync.tryAcquireShared
- 98_基于AQS实现的Condition阻塞过程源码分析。 condition 有单独的等待队列,当调用condition.await时,把自己加入到等待队列,并释放锁。
- 99 signal 的过程就是把 condition 等待队列的元素,转化到加锁等待队列。当其他线程
- 2019-9-26 100
2019-12-3 23-41
- 阅读 selector doc。selector可监听大量客户端的连接请求,相当于一个selector和大量客户端连接绑定在一起。
-
2019-9-16 1-5 未来课程的计划。
-
2019-12-3 6-18
-
2019-12-12 19-30
-
java nio 是对bio的封装,netty又是对nio的封装。
-
EventLoopGroup 线程池,每个连接一个事件队列
2020-1-2 35-43
- 管理 session, 在 gateway 在本地内存维护客户端与 socket 的关系, dispatcher 把session和 uid 的 gateway 保存起来,为之后发送消息路由做准备。 并且在 redis 中维护集中的 session 信息。