我正在使用Java 6,并通过Java Concurrency in Practice阅读。我试图弄清楚当使用这些方法时,如果等待锁的休眠线程在休眠时使用任何CPU周期。谁知道?谢谢!
马特
答案 0 :(得分:4)
任何操作都会消耗时钟周期。但是,当一个线程被挂起时,时钟周期的数量是固定的,并不依赖于它被挂起的时间。如果线程即使在相对较短的时间内被挂起也是好的,但是在很短的时间内它不是非常有效,这就是为什么Lock不会立即暂停线程但重试少量以获得在挂起线程之前锁定(希望它可以避免这样做)
我假设你在谈论ReentrantReadWriteLock.readLock()和ReentrantReadWriteLock.writeLock()支持的Lock.lock()。