首页 > 解决方案 > Java同时覆盖具有相同值的原语

问题描述

我目前正在开发一个项目,该项目使用并行流来覆盖布尔值,但仅将其更改为 false。我很好奇这在 Java 中是如何工作的。

如果两个请求同时用相同的值(完全相同的时间)覆盖布尔值。会发生什么?

标签: javaconcurrency

解决方案


完全相同的时间是不可能的。Java 虚拟机经常使用操作系统内核提供的底层调度器。调度程序实现了一个函数 s(t) 从 time 到根据特定策略(FIFO、SJF、Round Robin、Real Time 策略等)将 CPU 分配给进程的进程。在每个 t 中,当前只有一个进程在运行,其他进程被放入就绪队列,除非调度程序执行上下文切换。


推荐阅读