Java多线程与并发基础 (4)

虽然线程并没有阻塞,也始终在运行(所以叫做“活”锁,线程是“活”的),但是程序却得不到进展,因为线程始终互相谦让,重复做同样的事

工程中的活锁实例:消息队列,消息如果处理失败,就放在队列开头重试,没阻塞程序无法继续

如何解决活锁问题

加入随机因素,以太网的指数退避算法

饥饿

当线程需要某些资源(例如CPU),但是却始终得不到,可能原因是饥饿线程的优先级过低

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgwfd.html