# AtomicBoolean

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Summary:[Ctors](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#pubctors)\|[Methods](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#inhmethods)  

# AtomicBoolean

`
public


class
AtomicBoolean
`  
`

extends `[Object](https://developer.android.com/reference/java/lang/Object)`


``


implements

`[Serializable](https://developer.android.com/reference/java/io/Serializable)`


`

|---|-------------------------------------------|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | java.util.concurrent.atomic.AtomicBoolean |

<br />

*** ** * ** ***

A`boolean`value that may be updated atomically. See the[VarHandle](https://developer.android.com/reference/java/lang/invoke/VarHandle)specification for descriptions of the properties of atomic accesses. An`AtomicBoolean`is used in applications such as atomically updated flags, and cannot be used as a replacement for a[Boolean](https://developer.android.com/reference/java/lang/Boolean).

## Summary

|                                                                                              ### Public constructors                                                                                               ||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| ` `[AtomicBoolean](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#AtomicBoolean())`() ` Creates a new`AtomicBoolean`with initial value`false`.                               |
| ` `[AtomicBoolean](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#AtomicBoolean(boolean))`(boolean initialValue) ` Creates a new`AtomicBoolean`with the given initial value. |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ### Public methods                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ||
|-----------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` final boolean`                                                      | ` `[compareAndExchange](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#compareAndExchange(boolean,%20boolean))`(boolean expectedValue, boolean newValue) ` Atomically sets the value to`newValue`if the current value, referred to as the*witness value* ,`== expectedValue`, with memory effects as specified by[VarHandle.compareAndExchange](https://developer.android.com/reference/java/lang/invoke/VarHandle#compareAndExchange(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ` final boolean`                                                      | ` `[compareAndExchangeAcquire](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#compareAndExchangeAcquire(boolean,%20boolean))`(boolean expectedValue, boolean newValue) ` Atomically sets the value to`newValue`if the current value, referred to as the*witness value* ,`== expectedValue`, with memory effects as specified by[VarHandle.compareAndExchangeAcquire](https://developer.android.com/reference/java/lang/invoke/VarHandle#compareAndExchangeAcquire(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ` final boolean`                                                      | ` `[compareAndExchangeRelease](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#compareAndExchangeRelease(boolean,%20boolean))`(boolean expectedValue, boolean newValue) ` Atomically sets the value to`newValue`if the current value, referred to as the*witness value* ,`== expectedValue`, with memory effects as specified by[VarHandle.compareAndExchangeRelease](https://developer.android.com/reference/java/lang/invoke/VarHandle#compareAndExchangeRelease(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ` final boolean`                                                      | ` `[compareAndSet](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#compareAndSet(boolean,%20boolean))`(boolean expectedValue, boolean newValue) ` Atomically sets the value to`newValue`if the current value`== expectedValue`, with memory effects as specified by[VarHandle.compareAndSet](https://developer.android.com/reference/java/lang/invoke/VarHandle#compareAndSet(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| ` final boolean`                                                      | ` `[get](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#get())`() ` Returns the current value, with memory effects as specified by[VarHandle.getVolatile](https://developer.android.com/reference/java/lang/invoke/VarHandle#getVolatile(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ` final boolean`                                                      | ` `[getAcquire](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#getAcquire())`() ` Returns the current value, with memory effects as specified by[VarHandle.getAcquire](https://developer.android.com/reference/java/lang/invoke/VarHandle#getAcquire(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ` final boolean`                                                      | ` `[getAndSet](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#getAndSet(boolean))`(boolean newValue) ` Atomically sets the value to`newValue`and returns the old value, with memory effects as specified by[VarHandle.getAndSet](https://developer.android.com/reference/java/lang/invoke/VarHandle#getAndSet(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ` final boolean`                                                      | ` `[getOpaque](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#getOpaque())`() ` Returns the current value, with memory effects as specified by[VarHandle.getOpaque](https://developer.android.com/reference/java/lang/invoke/VarHandle#getOpaque(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| ` final boolean`                                                      | ` `[getPlain](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#getPlain())`() ` Returns the current value, with memory semantics of reading as if the variable was declared non-`volatile`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ` final void`                                                         | ` `[lazySet](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#lazySet(boolean))`(boolean newValue) ` Sets the value to`newValue`, with memory effects as specified by[VarHandle.setRelease](https://developer.android.com/reference/java/lang/invoke/VarHandle#setRelease(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| ` final void`                                                         | ` `[set](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#set(boolean))`(boolean newValue) ` Sets the value to`newValue`, with memory effects as specified by[VarHandle.setVolatile](https://developer.android.com/reference/java/lang/invoke/VarHandle#setVolatile(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ` final void`                                                         | ` `[setOpaque](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#setOpaque(boolean))`(boolean newValue) ` Sets the value to`newValue`, with memory effects as specified by[VarHandle.setOpaque](https://developer.android.com/reference/java/lang/invoke/VarHandle#setOpaque(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ` final void`                                                         | ` `[setPlain](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#setPlain(boolean))`(boolean newValue) ` Sets the value to`newValue`, with memory semantics of setting as if the variable was declared non-`volatile`and non-`final`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ` final void`                                                         | ` `[setRelease](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#setRelease(boolean))`(boolean newValue) ` Sets the value to`newValue`, with memory effects as specified by[VarHandle.setRelease](https://developer.android.com/reference/java/lang/invoke/VarHandle#setRelease(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ` `[String](https://developer.android.com/reference/java/lang/String) | ` `[toString](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#toString())`() ` Returns the String representation of the current value.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ` boolean`                                                            | ` `[weakCompareAndSet](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#weakCompareAndSet(boolean,%20boolean))`(boolean expectedValue, boolean newValue) ` *This method was deprecated in API level 33. This method has plain memory effects but the method name implies volatile memory effects (see methods such as[compareAndExchange(boolean, boolean)](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#compareAndExchange(boolean,%20boolean))and[compareAndSet(boolean, boolean)](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#compareAndSet(boolean,%20boolean))). To avoid confusion over plain or volatile memory effects it is recommended that the method[weakCompareAndSetPlain(boolean, boolean)](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#weakCompareAndSetPlain(boolean,%20boolean))be used instead.* |
| ` final boolean`                                                      | ` `[weakCompareAndSetAcquire](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#weakCompareAndSetAcquire(boolean,%20boolean))`(boolean expectedValue, boolean newValue) ` Possibly atomically sets the value to`newValue`if the current value`== expectedValue`, with memory effects as specified by[VarHandle.weakCompareAndSetAcquire](https://developer.android.com/reference/java/lang/invoke/VarHandle#weakCompareAndSetAcquire(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ` boolean`                                                            | ` `[weakCompareAndSetPlain](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#weakCompareAndSetPlain(boolean,%20boolean))`(boolean expectedValue, boolean newValue) ` Possibly atomically sets the value to`newValue`if the current value`== expectedValue`, with memory effects as specified by[VarHandle.weakCompareAndSetPlain](https://developer.android.com/reference/java/lang/invoke/VarHandle#weakCompareAndSetPlain(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ` final boolean`                                                      | ` `[weakCompareAndSetRelease](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#weakCompareAndSetRelease(boolean,%20boolean))`(boolean expectedValue, boolean newValue) ` Possibly atomically sets the value to`newValue`if the current value`== expectedValue`, with memory effects as specified by[VarHandle.weakCompareAndSetRelease](https://developer.android.com/reference/java/lang/invoke/VarHandle#weakCompareAndSetRelease(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ` final boolean`                                                      | ` `[weakCompareAndSetVolatile](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#weakCompareAndSetVolatile(boolean,%20boolean))`(boolean expectedValue, boolean newValue) ` Possibly atomically sets the value to`newValue`if the current value`== expectedValue`, with memory effects as specified by[VarHandle.weakCompareAndSet](https://developer.android.com/reference/java/lang/invoke/VarHandle#weakCompareAndSet(java.lang.Object[])).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |

| ### Inherited methods |
|-----------------------|---|
| From class` `[java.lang.Object](https://developer.android.com/reference/java/lang/Object)` ` |--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` `[Object](https://developer.android.com/reference/java/lang/Object)          | ` `[clone](https://developer.android.com/reference/java/lang/Object#clone())`() ` Creates and returns a copy of this object.                                                                                                                                                      | | ` boolean`                                                                     | ` `[equals](https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object))`(`[Object](https://developer.android.com/reference/java/lang/Object)` obj) ` Indicates whether some other object is "equal to" this one.                                           | | ` void`                                                                        | ` `[finalize](https://developer.android.com/reference/java/lang/Object#finalize())`() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.                                                          | | ` final `[Class](https://developer.android.com/reference/java/lang/Class)`<?>` | ` `[getClass](https://developer.android.com/reference/java/lang/Object#getClass())`() ` Returns the runtime class of this`Object`.                                                                                                                                                | | ` int`                                                                         | ` `[hashCode](https://developer.android.com/reference/java/lang/Object#hashCode())`() ` Returns a hash code value for the object.                                                                                                                                                 | | ` final void`                                                                  | ` `[notify](https://developer.android.com/reference/java/lang/Object#notify())`() ` Wakes up a single thread that is waiting on this object's monitor.                                                                                                                            | | ` final void`                                                                  | ` `[notifyAll](https://developer.android.com/reference/java/lang/Object#notifyAll())`() ` Wakes up all threads that are waiting on this object's monitor.                                                                                                                         | | ` `[String](https://developer.android.com/reference/java/lang/String)          | ` `[toString](https://developer.android.com/reference/java/lang/Object#toString())`() ` Returns a string representation of the object.                                                                                                                                            | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait(long,%20int))`(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*, or until a certain amount of real time has elapsed. | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait(long))`(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*, or until a certain amount of real time has elapsed.                   | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait())`() ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*.                                                                                             | ||

## Public constructors

### AtomicBoolean

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public AtomicBoolean ()
```

Creates a new`AtomicBoolean`with initial value`false`.

<br />

### AtomicBoolean

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public AtomicBoolean (boolean initialValue)
```

Creates a new`AtomicBoolean`with the given initial value.

<br />

|                     Parameters                      ||
|----------------|-------------------------------------|
| `initialValue` | `boolean`: the initial value <br /> |

## Public methods

### compareAndExchange

Added in[API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final boolean compareAndExchange (boolean expectedValue, 
                boolean newValue)
```

Atomically sets the value to`newValue`if the current value, referred to as the*witness value* ,`== expectedValue`, with memory effects as specified by[VarHandle.compareAndExchange](https://developer.android.com/reference/java/lang/invoke/VarHandle#compareAndExchange(java.lang.Object[])).

<br />

|                      Parameters                       ||
|-----------------|--------------------------------------|
| `expectedValue` | `boolean`: the expected value <br /> |
| `newValue`      | `boolean`: the new value <br />      |

|                                              Returns                                              ||
|-----------|----------------------------------------------------------------------------------------|
| `boolean` | the*witness value* , which will be the same as the expected value if successful <br /> |

### compareAndExchangeAcquire

Added in[API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final boolean compareAndExchangeAcquire (boolean expectedValue, 
                boolean newValue)
```

Atomically sets the value to`newValue`if the current value, referred to as the*witness value* ,`== expectedValue`, with memory effects as specified by[VarHandle.compareAndExchangeAcquire](https://developer.android.com/reference/java/lang/invoke/VarHandle#compareAndExchangeAcquire(java.lang.Object[])).

<br />

|                      Parameters                       ||
|-----------------|--------------------------------------|
| `expectedValue` | `boolean`: the expected value <br /> |
| `newValue`      | `boolean`: the new value <br />      |

|                                              Returns                                              ||
|-----------|----------------------------------------------------------------------------------------|
| `boolean` | the*witness value* , which will be the same as the expected value if successful <br /> |

### compareAndExchangeRelease

Added in[API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final boolean compareAndExchangeRelease (boolean expectedValue, 
                boolean newValue)
```

Atomically sets the value to`newValue`if the current value, referred to as the*witness value* ,`== expectedValue`, with memory effects as specified by[VarHandle.compareAndExchangeRelease](https://developer.android.com/reference/java/lang/invoke/VarHandle#compareAndExchangeRelease(java.lang.Object[])).

<br />

|                      Parameters                       ||
|-----------------|--------------------------------------|
| `expectedValue` | `boolean`: the expected value <br /> |
| `newValue`      | `boolean`: the new value <br />      |

|                                              Returns                                              ||
|-----------|----------------------------------------------------------------------------------------|
| `boolean` | the*witness value* , which will be the same as the expected value if successful <br /> |

### compareAndSet

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final boolean compareAndSet (boolean expectedValue, 
                boolean newValue)
```

Atomically sets the value to`newValue`if the current value`== expectedValue`, with memory effects as specified by[VarHandle.compareAndSet](https://developer.android.com/reference/java/lang/invoke/VarHandle#compareAndSet(java.lang.Object[])).

<br />

|                      Parameters                       ||
|-----------------|--------------------------------------|
| `expectedValue` | `boolean`: the expected value <br /> |
| `newValue`      | `boolean`: the new value <br />      |

|                                                         Returns                                                          ||
|-----------|---------------------------------------------------------------------------------------------------------------|
| `boolean` | `true`if successful. False return indicates that the actual value was not equal to the expected value. <br /> |

### get

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final boolean get ()
```

Returns the current value, with memory effects as specified by[VarHandle.getVolatile](https://developer.android.com/reference/java/lang/invoke/VarHandle#getVolatile(java.lang.Object[])).

<br />

|               Returns               ||
|-----------|--------------------------|
| `boolean` | the current value <br /> |

### getAcquire

Added in[API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final boolean getAcquire ()
```

Returns the current value, with memory effects as specified by[VarHandle.getAcquire](https://developer.android.com/reference/java/lang/invoke/VarHandle#getAcquire(java.lang.Object[])).

<br />

|           Returns           ||
|-----------|------------------|
| `boolean` | the value <br /> |

### getAndSet

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final boolean getAndSet (boolean newValue)
```

Atomically sets the value to`newValue`and returns the old value, with memory effects as specified by[VarHandle.getAndSet](https://developer.android.com/reference/java/lang/invoke/VarHandle#getAndSet(java.lang.Object[])).

<br />

|                 Parameters                  ||
|------------|---------------------------------|
| `newValue` | `boolean`: the new value <br /> |

|               Returns                ||
|-----------|---------------------------|
| `boolean` | the previous value <br /> |

### getOpaque

Added in[API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final boolean getOpaque ()
```

Returns the current value, with memory effects as specified by[VarHandle.getOpaque](https://developer.android.com/reference/java/lang/invoke/VarHandle#getOpaque(java.lang.Object[])).

<br />

|           Returns           ||
|-----------|------------------|
| `boolean` | the value <br /> |

### getPlain

Added in[API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final boolean getPlain ()
```

Returns the current value, with memory semantics of reading as if the variable was declared non-`volatile`.

<br />

|           Returns           ||
|-----------|------------------|
| `boolean` | the value <br /> |

### lazySet

Added in[API level 9](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final void lazySet (boolean newValue)
```

Sets the value to`newValue`, with memory effects as specified by[VarHandle.setRelease](https://developer.android.com/reference/java/lang/invoke/VarHandle#setRelease(java.lang.Object[])).

<br />

|                 Parameters                  ||
|------------|---------------------------------|
| `newValue` | `boolean`: the new value <br /> |

### set

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final void set (boolean newValue)
```

Sets the value to`newValue`, with memory effects as specified by[VarHandle.setVolatile](https://developer.android.com/reference/java/lang/invoke/VarHandle#setVolatile(java.lang.Object[])).

<br />

|                 Parameters                  ||
|------------|---------------------------------|
| `newValue` | `boolean`: the new value <br /> |

### setOpaque

Added in[API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final void setOpaque (boolean newValue)
```

Sets the value to`newValue`, with memory effects as specified by[VarHandle.setOpaque](https://developer.android.com/reference/java/lang/invoke/VarHandle#setOpaque(java.lang.Object[])).

<br />

|                 Parameters                  ||
|------------|---------------------------------|
| `newValue` | `boolean`: the new value <br /> |

### setPlain

Added in[API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final void setPlain (boolean newValue)
```

Sets the value to`newValue`, with memory semantics of setting as if the variable was declared non-`volatile`and non-`final`.

<br />

|                 Parameters                  ||
|------------|---------------------------------|
| `newValue` | `boolean`: the new value <br /> |

### setRelease

Added in[API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final void setRelease (boolean newValue)
```

Sets the value to`newValue`, with memory effects as specified by[VarHandle.setRelease](https://developer.android.com/reference/java/lang/invoke/VarHandle#setRelease(java.lang.Object[])).

<br />

|                 Parameters                  ||
|------------|---------------------------------|
| `newValue` | `boolean`: the new value <br /> |

### toString

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public String toString ()
```

Returns the String representation of the current value.

<br />

|                                                          Returns                                                          ||
|--------------------------------------------------------------------|-------------------------------------------------------|
| [String](https://developer.android.com/reference/java/lang/String) | the String representation of the current value <br /> |

### weakCompareAndSet

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Deprecated in[API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public boolean weakCompareAndSet (boolean expectedValue, 
                boolean newValue)
```

<br />

**This method was deprecated in API level 33.**   
This method has plain memory effects but the method name implies volatile memory effects (see methods such as[compareAndExchange(boolean, boolean)](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#compareAndExchange(boolean,%20boolean))and[compareAndSet(boolean, boolean)](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#compareAndSet(boolean,%20boolean))). To avoid confusion over plain or volatile memory effects it is recommended that the method[weakCompareAndSetPlain(boolean, boolean)](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#weakCompareAndSetPlain(boolean,%20boolean))be used instead.

Possibly atomically sets the value to`newValue`if the current value`== expectedValue`, with memory effects as specified by[VarHandle.weakCompareAndSetPlain](https://developer.android.com/reference/java/lang/invoke/VarHandle#weakCompareAndSetPlain(java.lang.Object[])).

<br />

|                      Parameters                       ||
|-----------------|--------------------------------------|
| `expectedValue` | `boolean`: the expected value <br /> |
| `newValue`      | `boolean`: the new value <br />      |

|                Returns                ||
|-----------|----------------------------|
| `boolean` | `true`if successful <br /> |

**See also:**

- [weakCompareAndSetPlain(boolean, boolean)](https://developer.android.com/reference/java/util/concurrent/atomic/AtomicBoolean#weakCompareAndSetPlain(boolean,%20boolean))  

### weakCompareAndSetAcquire

Added in[API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final boolean weakCompareAndSetAcquire (boolean expectedValue, 
                boolean newValue)
```

Possibly atomically sets the value to`newValue`if the current value`== expectedValue`, with memory effects as specified by[VarHandle.weakCompareAndSetAcquire](https://developer.android.com/reference/java/lang/invoke/VarHandle#weakCompareAndSetAcquire(java.lang.Object[])).

<br />

|                      Parameters                       ||
|-----------------|--------------------------------------|
| `expectedValue` | `boolean`: the expected value <br /> |
| `newValue`      | `boolean`: the new value <br />      |

|                Returns                ||
|-----------|----------------------------|
| `boolean` | `true`if successful <br /> |

### weakCompareAndSetPlain

Added in[API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public boolean weakCompareAndSetPlain (boolean expectedValue, 
                boolean newValue)
```

Possibly atomically sets the value to`newValue`if the current value`== expectedValue`, with memory effects as specified by[VarHandle.weakCompareAndSetPlain](https://developer.android.com/reference/java/lang/invoke/VarHandle#weakCompareAndSetPlain(java.lang.Object[])).

<br />

|                      Parameters                       ||
|-----------------|--------------------------------------|
| `expectedValue` | `boolean`: the expected value <br /> |
| `newValue`      | `boolean`: the new value <br />      |

|                Returns                ||
|-----------|----------------------------|
| `boolean` | `true`if successful <br /> |

### weakCompareAndSetRelease

Added in[API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final boolean weakCompareAndSetRelease (boolean expectedValue, 
                boolean newValue)
```

Possibly atomically sets the value to`newValue`if the current value`== expectedValue`, with memory effects as specified by[VarHandle.weakCompareAndSetRelease](https://developer.android.com/reference/java/lang/invoke/VarHandle#weakCompareAndSetRelease(java.lang.Object[])).

<br />

|                      Parameters                       ||
|-----------------|--------------------------------------|
| `expectedValue` | `boolean`: the expected value <br /> |
| `newValue`      | `boolean`: the new value <br />      |

|                Returns                ||
|-----------|----------------------------|
| `boolean` | `true`if successful <br /> |

### weakCompareAndSetVolatile

Added in[API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public final boolean weakCompareAndSetVolatile (boolean expectedValue, 
                boolean newValue)
```

Possibly atomically sets the value to`newValue`if the current value`== expectedValue`, with memory effects as specified by[VarHandle.weakCompareAndSet](https://developer.android.com/reference/java/lang/invoke/VarHandle#weakCompareAndSet(java.lang.Object[])).

<br />

|                      Parameters                       ||
|-----------------|--------------------------------------|
| `expectedValue` | `boolean`: the expected value <br /> |
| `newValue`      | `boolean`: the new value <br />      |

|                Returns                ||
|-----------|----------------------------|
| `boolean` | `true`if successful <br /> |