AbstractOwnableSynchronizer
Stay organized with collections
Save and categorize content based on your preferences.
A synchronizer that may be exclusively owned by a thread. This
class provides a basis for creating locks and related synchronizers
that may entail a notion of ownership. The
AbstractOwnableSynchronizer
class itself does not manage or
use this information. However, subclasses and tools may use
appropriately maintained values to help control and monitor access
and provide diagnostics.
Protected Constructor Summary
Inherited Method Summary
From class
java.lang.Object
Object
|
clone()
Creates and returns a copy of this Object .
|
boolean
|
equals( Object obj)
Compares this instance with the specified object and indicates if they
are equal.
|
void
|
finalize()
Invoked when the garbage collector has detected that this instance is no longer reachable.
|
final
Class<?>
|
getClass()
Returns the unique instance of Class that represents this
object's class.
|
int
|
hashCode()
Returns an integer hash code for this object.
|
final
void
|
notify()
Causes a thread which is waiting on this object's monitor (by means of
calling one of the wait() methods) to be woken up.
|
final
void
|
notifyAll()
Causes all threads which are waiting on this object's monitor (by means
of calling one of the wait() methods) to be woken up.
|
String
|
toString()
Returns a string containing a concise, human-readable description of this
object.
|
final
void
|
wait(long timeout, int nanos)
Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object or until the
specified timeout expires.
|
final
void
|
wait(long timeout)
Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object or until the
specified timeout expires.
|
final
void
|
wait()
Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object.
|
Protected Constructors
protected
AbstractOwnableSynchronizer
()
Empty constructor for use by subclasses.
Protected Methods
protected
final
Thread
getExclusiveOwnerThread
()
Returns the thread last set by setExclusiveOwnerThread
,
or null
if never set. This method does not otherwise
impose any synchronization or volatile
field accesses.
protected
final
void
setExclusiveOwnerThread
(Thread thread)
Sets the thread that currently owns exclusive access.
A null
argument indicates that no thread owns access.
This method does not otherwise impose any synchronization or
volatile
field accesses.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-07-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-07-10 UTC."],[[["\u003cp\u003e\u003ccode\u003eAbstractOwnableSynchronizer\u003c/code\u003e is a base class for creating synchronizers with an ownership concept, allowing subclasses to manage and monitor access.\u003c/p\u003e\n"],["\u003cp\u003eIt provides methods to get and set the thread that exclusively owns the synchronizer.\u003c/p\u003e\n"],["\u003cp\u003eSubclasses like \u003ccode\u003eAbstractQueuedSynchronizer\u003c/code\u003e and \u003ccode\u003eAbstractQueuedLongSynchronizer\u003c/code\u003e utilize this framework to build locks and other synchronization primitives.\u003c/p\u003e\n"],["\u003cp\u003eAlthough \u003ccode\u003eAbstractOwnableSynchronizer\u003c/code\u003e itself doesn't manage the ownership information, it enables tools and subclasses to control and diagnose access.\u003c/p\u003e\n"],["\u003cp\u003eIt offers a protected empty constructor for subclass instantiation and protected methods for exclusive owner thread management.\u003c/p\u003e\n"]]],["`AbstractOwnableSynchronizer` is a base class for creating synchronizers that can be owned by a single thread. It provides functionality to manage thread ownership, but doesn't actively use this information. Subclasses like `AbstractQueuedSynchronizer` utilize this for locks and related mechanisms. It provides methods `setExclusiveOwnerThread(Thread)` to assign ownership and `getExclusiveOwnerThread()` to retrieve it, allowing monitoring and control of access. The class contains an empty constructor and extends `Object` implementing `Serializable`.\n"],null,["# AbstractOwnableSynchronizer\n\npublic abstract class **AbstractOwnableSynchronizer** extends [Object](../../../../../reference/java/lang/Object.html) \nimplements [Serializable](../../../../../reference/java/io/Serializable.html) \n\n|---|---|---|\n| Known Direct Subclasses [AbstractQueuedLongSynchronizer](../../../../../reference/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.html), [AbstractQueuedSynchronizer](../../../../../reference/java/util/concurrent/locks/AbstractQueuedSynchronizer.html) |---------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [AbstractQueuedLongSynchronizer](../../../../../reference/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.html) | A version of [AbstractQueuedSynchronizer](../../../../../reference/java/util/concurrent/locks/AbstractQueuedSynchronizer.html) in which synchronization state is maintained as a `long`. | | [AbstractQueuedSynchronizer](../../../../../reference/java/util/concurrent/locks/AbstractQueuedSynchronizer.html) | Provides a framework for implementing blocking locks and related synchronizers (semaphores, events, etc) that rely on first-in-first-out (FIFO) wait queues. | |||\n\nA synchronizer that may be exclusively owned by a thread. This\nclass provides a basis for creating locks and related synchronizers\nthat may entail a notion of ownership. The\n`AbstractOwnableSynchronizer` class itself does not manage or\nuse this information. However, subclasses and tools may use\nappropriately maintained values to help control and monitor access\nand provide diagnostics. \n\n### Protected Constructor Summary\n\n|---|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| | [AbstractOwnableSynchronizer](../../../../../reference/java/util/concurrent/locks/AbstractOwnableSynchronizer.html#AbstractOwnableSynchronizer())() Empty constructor for use by subclasses. |\n\n### Protected Method Summary\n\n|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| final Thread | [getExclusiveOwnerThread](../../../../../reference/java/util/concurrent/locks/AbstractOwnableSynchronizer.html#getExclusiveOwnerThread())() Returns the thread last set by `setExclusiveOwnerThread`, or `null` if never set. |\n| final void | [setExclusiveOwnerThread](../../../../../reference/java/util/concurrent/locks/AbstractOwnableSynchronizer.html#setExclusiveOwnerThread(java.lang.Thread))(Thread thread) Sets the thread that currently owns exclusive access. |\n\n### Inherited Method Summary\n\nFrom class [java.lang.Object](../../../../../reference/java/lang/Object.html) \n\n|-------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [Object](../../../../../reference/java/lang/Object.html) | [clone](../../../../../reference/java/lang/Object.html#clone())() Creates and returns a copy of this `Object`. |\n| boolean | [equals](../../../../../reference/java/lang/Object.html#equals(java.lang.Object))([Object](../../../../../reference/java/lang/Object.html) obj) Compares this instance with the specified object and indicates if they are equal. |\n| void | [finalize](../../../../../reference/java/lang/Object.html#finalize())() Invoked when the garbage collector has detected that this instance is no longer reachable. |\n| final [Class](../../../../../reference/java/lang/Class.html)\\\u003c?\\\u003e | [getClass](../../../../../reference/java/lang/Object.html#getClass())() Returns the unique instance of [Class](../../../../../reference/java/lang/Class.html) that represents this object's class. |\n| int | [hashCode](../../../../../reference/java/lang/Object.html#hashCode())() Returns an integer hash code for this object. |\n| final void | [notify](../../../../../reference/java/lang/Object.html#notify())() Causes a thread which is waiting on this object's monitor (by means of calling one of the `wait()` methods) to be woken up. |\n| final void | [notifyAll](../../../../../reference/java/lang/Object.html#notifyAll())() Causes all threads which are waiting on this object's monitor (by means of calling one of the `wait()` methods) to be woken up. |\n| [String](../../../../../reference/java/lang/String.html) | [toString](../../../../../reference/java/lang/Object.html#toString())() Returns a string containing a concise, human-readable description of this object. |\n| final void | [wait](../../../../../reference/java/lang/Object.html#wait(long,%20int))(long timeout, int nanos) Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object or until the specified timeout expires. |\n| final void | [wait](../../../../../reference/java/lang/Object.html#wait(long))(long timeout) Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object or until the specified timeout expires. |\n| final void | [wait](../../../../../reference/java/lang/Object.html#wait())() Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object. |\n\nProtected Constructors\n----------------------\n\n#### protected\n**AbstractOwnableSynchronizer**\n()\n\nEmpty constructor for use by subclasses.\n\nProtected Methods\n-----------------\n\n#### protected final Thread\n**getExclusiveOwnerThread**\n()\n\nReturns the thread last set by `setExclusiveOwnerThread`,\nor `null` if never set. This method does not otherwise\nimpose any synchronization or `volatile` field accesses. \n\n##### Returns\n\n- the owner thread \n\n#### protected final void\n**setExclusiveOwnerThread**\n(Thread thread)\n\nSets the thread that currently owns exclusive access.\nA `null` argument indicates that no thread owns access.\nThis method does not otherwise impose any synchronization or\n`volatile` field accesses. \n\n##### Parameters\n\n| thread | the owner thread |\n|--------|------------------|"]]