由ReentrantReadWriteLock类中的readLock()或writeLock()方法构成的休眠线程是否会占用CPU周期?

时间:2011-03-15 20:52:13

标签: java multithreading cpu-usage reentrantreadwritelock

我正在使用Java 6,并通过Java Concurrency in Practice阅读。我试图弄清楚当使用这些方法时,如果等待锁的休眠线程在休眠时使用任何CPU周期。谁知道?谢谢!

马特

1 个答案:

答案 0 :(得分:4)

任何操作都会消耗时钟周期。但是,当一个线程被挂起时,时钟周期的数量是固定的,并不依赖于它被挂起的时间。如果线程即使在相对较短的时间内被挂起也是好的,但是在很短的时间内它不是非常有效,这就是为什么Lock不会立即暂停线程但重试少量以获得在挂起线程之前锁定(希望它可以避免这样做)

我假设你在谈论ReentrantReadWriteLock.readLock()和ReentrantReadWriteLock.writeLock()支持的Lock.lock()。