两个 Java 线程在完全相同的毫秒内



如果两个线程尝试在完全相同的同一时间以精确的毫秒或(无论最小CPU单元是多少)访问同步方法。会发生什么?如果 JVM/System 也具有相同的优先级,它们将如何解决此问题。会造成僵局吗?另外,有关锁的信息存储在哪里?

这就是线程的全部意义。 操作系统的作业调度程序将允许一个先于另一个。 不会发生死锁。

实际上,作业调度程序用于流程的重量级分叉。 JVM处理轮到哪些Thread执行或进入同步块。

输入synchronized块在内部转换为在操作系统中获取一些原子互斥锁或信号量。这些构造保证是原子的。因此,不会发生任何错误,一种方法始终是第一。即使在多核、多 CPU 机器中,也只有一个线程可以同时获取信号量/互斥锁。

如果绝对不会造成僵局。要制造僵局,您需要两种资源来竞争。

最新更新