# Poco

# class SynchronizedObject

Library: Foundation
Package: Threading
Header: Poco/SynchronizedObject.h

## Description

This class aggregates a Mutex and an Event and can act as a base class for all objects requiring synchronization in a multithreaded scenario.

## Member Summary

Member Functions: lock, notify, tryLock, tryWait, unlock, wait

## Types

### ScopedLock

typedef Poco::ScopedLock < SynchronizedObject > ScopedLock;

## Constructors

### SynchronizedObject

SynchronizedObject();

Creates the object.

## Destructor

### ~SynchronizedObject

virtual ~SynchronizedObject();

Destroys the object.

## Member Functions

### lock

void lock() const;

Locks the object. Blocks if the object is locked by another thread.

### notify

void notify() const;

Signals the object. Exactly only one thread waiting for the object can resume execution.

### tryLock

bool tryLock() const;

Tries to lock the object. Returns false immediately if the object is already locked by another thread Returns true if the object was successfully locked.

### tryWait

bool tryWait(
long milliseconds
) const;

Waits for the object to become signalled. Returns true if the object became signalled within the specified time interval, false otherwise.

### unlock

void unlock() const;

Unlocks the object so that it can be locked by other threads.

### wait

void wait() const;

Waits for the object to become signalled.

### wait

void wait(
long milliseconds
) const;

Waits for the object to become signalled. Throws a TimeoutException if the object does not become signalled within the specified time interval.