我正在阅读有关Java中的synchronized
块的信息,当我阅读时,我们拥有与每个对象关联的那些隐式“锁”(如here中所述),如果我们想象有一个LOCK
变量:
private static final Object LOCK = new Object();
据我所知,synchronized (LOCK)
块在幕后发生的事情是,如果某个线程(例如,t1
访问LOCK
对象上的块,则其他线程无法访问它,因为它们可以在t1
完成其工作之前,不会从同一对象获得锁,因为t1
尚未释放该锁。
但是我仍然不知道这些“锁”到底是什么。它们是纯粹用于同步过程的某种类型的唯一数据/元数据吗?或者我们如何解释/定义它们?