Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在编写一个多线程的小程序,我正在使用信号量来强制互斥。但是一个问题触发了我的头脑。
如果Semaphore.release之前调用会发生什么Semaphore.acquire?
Semaphore.release
Semaphore.acquire
我的工作正常。这是不好的做法还是可以?
我认为您在谈论监视器原理。这用于避免在访问内存上的数据时出现死锁,该内存与许多线程或进程共享。
如果您这样做,请告知自己有关 Java 中的同步块的信息。这确保没有其他线程可以与在其方法体中持有同步块的线程同时访问该对象。如果其他人想要访问此数据,当您处于同步块时,其他人必须等到当前工作线程在相关对象/数据上离开此状态。