关于活锁的概念问题
来源:14-20 活锁演示

慕函数0594413
2020-05-02
老师你好,关于活锁有个概念性的问题有点疑惑。
活锁有没像死锁那样要求是发生在2个或者2个以上的线程。
比如说某个线程由于逻辑问题,它自己陷入了死循环,与其他线程无关。能否说这个线程发生了活锁?
再比如消息队列重复消费这个案例,线程A拿到队头元素,正在处理。同时线程B拿到下一个元素,成功处理。此时线程A,由于依赖服务出了问题,处理该消息失败,将消息放回队头。这时线程C又来消费队头元素,依然失败。
这个瞬间,可以说线程A和线程C陷入了活锁吗?
写回答
1回答
-
恩,活锁没有一个权威定义哈,我理解的活锁,并不要求2个或者2个以上的线程,所以自己陷入了死循环,也是活锁。
后面的例子,我认为可以认为线程A C陷入了活锁。
212020-05-05
相似问题