equal
deleted
inserted
replaced
115 * |
115 * |
116 * <p>Except where noted, passing a {@code null} value for any |
116 * <p>Except where noted, passing a {@code null} value for any |
117 * parameter will result in a {@link NullPointerException} being |
117 * parameter will result in a {@link NullPointerException} being |
118 * thrown. |
118 * thrown. |
119 * |
119 * |
120 * <h3>Memory Synchronization</h3> |
120 * <h2>Memory Synchronization</h2> |
121 * |
121 * |
122 * <p>All {@code Lock} implementations <em>must</em> enforce the same |
122 * <p>All {@code Lock} implementations <em>must</em> enforce the same |
123 * memory synchronization semantics as provided by the built-in monitor |
123 * memory synchronization semantics as provided by the built-in monitor |
124 * lock, as described in |
124 * lock, as described in |
125 * <a href="https://docs.oracle.com/javase/specs/jls/se11/html/jls-17.html#jls-17.4"> |
125 * <a href="https://docs.oracle.com/javase/specs/jls/se11/html/jls-17.html#jls-17.4"> |
134 * |
134 * |
135 * Unsuccessful locking and unlocking operations, and reentrant |
135 * Unsuccessful locking and unlocking operations, and reentrant |
136 * locking/unlocking operations, do not require any memory |
136 * locking/unlocking operations, do not require any memory |
137 * synchronization effects. |
137 * synchronization effects. |
138 * |
138 * |
139 * <h3>Implementation Considerations</h3> |
139 * <h2>Implementation Considerations</h2> |
140 * |
140 * |
141 * <p>The three forms of lock acquisition (interruptible, |
141 * <p>The three forms of lock acquisition (interruptible, |
142 * non-interruptible, and timed) may differ in their performance |
142 * non-interruptible, and timed) may differ in their performance |
143 * characteristics, ordering guarantees, or other implementation |
143 * characteristics, ordering guarantees, or other implementation |
144 * qualities. Further, the ability to interrupt the <em>ongoing</em> |
144 * qualities. Further, the ability to interrupt the <em>ongoing</em> |