RocketMQ整理
以公平锁为例1、ReentrantLock.lock 调用acquire(1); 1.1 如果当前状态为0且队列中没有等待的线程(头尾执行都是null),则将当前线程的状态state修改成1,同时将执行线程设置成自己,返回true加锁成功 1.2 如果当前执行线程就是自己,则state值累加1 返回加锁成功 1.3 除上述两者情况返回false,加锁失败2、如果加锁失败 2.1:判断当前是否有队列,如果没有则构造一个空的头结点A 2.2:当前线程封装成node结点B,入...
原创
2020-12-22 18:29:57 ·
81 阅读 ·
0 评论