当前位置: 首页 > news >正文

26.活锁、饥饿锁

两个线程,相互改变了对方结束条件,导致两个线程不能结束。执行时间也都是一样,导致两个线程永远不会结束。

@Slf4j
public class LiveLockDemo {static volatile int count = 10;public static void main(String[] args) {new Thread(() -> {while (count > 0) {try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}count --;log.info("count={}", count);}}, "t1").start();new Thread(() -> {while (count < 20) {try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}count ++;log.info("count={}", count);}}, "t2").start();}
}

解决办法:将执行时间设置成不一样即可。

扩充:饥饿锁表示某一个线程长时间获取不到cpu的资源,得不到执行。

http://www.lryc.cn/news/331123.html

相关文章:

  • docker 安装nginx
  • 2024年阿里云新用户便宜购买云服务器攻略:5大细节助你降低购买成本
  • SSTI模板注入(jinja2)
  • ESP32学习---ESP-NOW(一)
  • C++核心高级编程 --- 3、函数提高
  • 【微服务篇】深入理解分布式消息队列系统
  • 基于k8s的web服务器构建
  • 【名词解释】ImageCaption任务中的CIDEr、n-gram、TF-IDF、BLEU、METEOR、ROUGE 分别是什么?它们是怎样计算的?
  • C++其他语法..
  • 【Vue3源码学习】— CH2.6 effect.ts:详解
  • C语言:文件操作(一)
  • 集中进行一系列处理——函数
  • git diff
  • 新手使用GIT上传本地项目到Github(个人笔记)
  • 结合《人力资源管理系统》的Java基础题
  • PostgreSQL备份还原数据库
  • 实现读写分离与优化查询性能:通过物化视图在MySQL、PostgreSQL和SQL Server中的应用
  • pytest中文使用文档----10skip和xfail标记
  • 【Spring MVC】快速学习使用Spring MVC的注解及三层架构
  • Python(乱学)
  • OpenHarmony实战:轻量级系统之子系统移植概述
  • Neo4j基础知识
  • HTTP/1.1 特性(计算机网络)
  • 每日一题————P5725 【深基4.习8】求三角形
  • 第三题:时间加法
  • 【RAG】内部外挂知识库搭建-本地GPT
  • MySQL——锁
  • C++(12): std::mutex及其高级变种的使用
  • 基于ROS软路由的百元硬件升级方案实现突破千兆宽带
  • OpenHarmony实战开发-分布式关系型数据库