Java 并发编程实验室
JavaConcurrencyLab
Java 并发编程实验室。通过竞态条件演示、volatile 可见性、死锁检测、ReentrantLock 和 CAS 原子操作,掌握线程安全核心技能。
Java 并发: 0 / 5
挑战 1: 竞态条件
观察多个线程同时修改共享变量时的数据竞争问题
竞态条件演示
共享计数器
0
期望值: 1000
线程状态
💡 Java 并发编程核心概念
Java 并发编程的核心挑战是保证线程安全:多个线程同时访问共享数据时程序行为正确。 解决方案从粗到细:synchronized(互斥锁)→ ReentrantLock(灵活锁)→ 原子变量(无锁 CAS)→ 并发集合(分段锁/CAS)。
线程安全工具
• synchronized / ReentrantLock
• volatile(可见性)
• AtomicInteger / AtomicReference
• ConcurrentHashMap
同步工具类
• CountDownLatch(等待完成)
• Semaphore(限流)
• CyclicBarrier(多点同步)
• Exchanger(数据交换)
关联教材
以下教材与本沙盒涉及的抽象层级相关,建议系统学习:
关联教材章节
以下教材章节与本沙盒涉及的抽象层级相关,建议配合阅读:
第7章深入理解计算机系统
链接
欢迎来到灰色地带
静态链接目标文件符号解析重定位
第8章深入理解计算机系统
异常控制流
操作系统:唯一的使命就是帮助程序运行
异常进程系统调用信号
第9章深入理解计算机系统
虚拟内存
假装我们有用不完的物理内存
虚拟地址页表TLB内存映射
第10章深入理解计算机系统
系统级I/O
务必搞清楚你自己正在和整个系统的哪一层打交道
文件描述符RIO包I/O重定向
第11章深入理解计算机系统
网络编程
实现古人天涯若比邻的梦想
SocketTCP/IPHTTP客户端-服务器模型
第12章深入理解计算机系统
并发编程
并发与并行,傻傻分不清楚?
线程互斥锁信号量生产者-消费者
第6章计算机系统要素
汇编器
从助记符到机器码
符号解析代码生成
第7章计算机系统要素
虚拟机(上)
栈式机器
栈操作算术指令内存访问
第8章计算机系统要素
虚拟机(下)
控制流
标签分支函数调用
第9章计算机系统要素
高级语言
Jack 语言
面向对象类型系统
第10章计算机系统要素
编译器(上)
语法分析
词法分析递归下降
第11章计算机系统要素
编译器(下)
代码生成
中间代码目标代码
学习路径推荐
建议按以下顺序学习,循序渐进掌握计算机科学:
前置沙盒(建议先学习)
使用说明
- •调整参数观察行为变化,实时反馈
- •状态自动编码到 URL,可直接分享给他人
- •支持键盘操作(Tab 切换、方向键调整)