多个线程在同一对象上同步的事件顺序

时间:2012-03-16 03:01:57

标签: java

如果我有一个公共线程池,它将可运行的任务排队,并且每次可运行的任务都是同一个对象。

当它到达具有同步锁定的代码块(在可运行任务中)时会发生什么?并说5个线程在同一个锁上等待?

当它解锁时,同步块是等待执行的队列行还是新线程加入队列,或者是谁设法先抢占该块?

如果没有队列行,假设我想要一个有序执行,那么最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

synchronized块没有任何已定义的顺序。您可以使用带有“公平”锁定的java.util.concurrent.locks.ReentrantLock来实现与同步块相同的效果,但保证顺序。