两个java线程完全相同毫秒

时间:2012-11-17 19:29:31

标签: java multithreading

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

2 个答案:

答案 0 :(得分:5)

这是线程的全部要点。操作系统的作业调度程序将允许一个在另一个之前。不会发生死锁。

实际上,作业调度程序用于重量级分析进程。 JVM处理Thread转向执行或进入同步块的行为。

答案 1 :(得分:2)

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

如果肯定不会造成死锁。要创建死锁,您需要两个资源来竞争。