Poco

class Thread

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

Description

This class implements a platform-independent wrapper to an operating system thread.

Every Thread object gets a unique (within its process) numeric thread ID. Furthermore, a thread can be assigned a name. The name of a thread can be changed at any time.

Inheritance

Direct Base Classes: ThreadImpl

All Base Classes: ThreadImpl

Member Summary

Member Functions: clearTLS, current, getMaxOSPriority, getMinOSPriority, getName, getOSPriority, getPriority, getStackSize, id, isRunning, join, makeName, name, setName, setOSPriority, setPriority, setStackSize, sleep, start, tls, tryJoin, uniqueId, yield

Enumerations

Priority

Thread priorities.

PRIO_LOWEST = PRIO_LOWEST_IMPL

The lowest thread priority.

PRIO_LOW = PRIO_LOW_IMPL

A lower than normal thread priority.

PRIO_NORMAL = PRIO_NORMAL_IMPL

The normal thread priority.

PRIO_HIGH = PRIO_HIGH_IMPL

A higher than normal thread priority.

PRIO_HIGHEST = PRIO_HIGHEST_IMPL

The highest thread priority.

Constructors

Thread

Thread();

Creates a thread. Call start() to start it.

Thread

Thread(
    const std::string & name
);

Creates a named thread. Call start() to start it.

Destructor

~Thread

~Thread();

Destroys the thread.

Member Functions

current static inline

static Thread * current();

Returns the Thread object for the currently active thread. If the current thread is the main thread, 0 is returned.

getMaxOSPriority static inline

static int getMaxOSPriority();

Returns the maximum operating system-specific priority value, which can be passed to setOSPriority().

getMinOSPriority static inline

static int getMinOSPriority();

Returns the mininum operating system-specific priority value, which can be passed to setOSPriority().

getName inline

std::string getName() const;

Returns teh name of the thread.

getOSPriority inline

int getOSPriority() const;

Returns the thread's priority, expressed as an operating system specific priority value.

getPriority

Priority getPriority() const;

Returns the thread's priority.

getStackSize inline

int getStackSize() const;

Returns the thread's stack size in bytes. If the default stack size is used, 0 is returned.

id inline

int id() const;

Returns the unique thread ID of the thread.

isRunning inline

bool isRunning() const;

Returns true if the thread is running.

join

void join();

Waits until the thread completes execution. If multiple threads try to join the same thread, the result is undefined.

join

void join(
    long milliseconds
);

Waits for at most the given interval for the thread to complete. Throws a TimeoutException if the thread does not complete within the specified time interval.

name inline

std::string name() const;

Returns the name of the thread.

setName

void setName(
    const std::string & name
);

Sets the name of the thread.

setOSPriority inline

void setOSPriority(
    int prio
);

Sets the thread's priority, using an operating system specific priority value. Use getMinOSPriority() and getMaxOSPriority() to obtain mininum and maximum priority values.

setPriority

void setPriority(
    Priority prio
);

Sets the thread's priority.

Some platform only allow changing a thread's priority if the process has certain privileges.

setStackSize inline

void setStackSize(
    int size
);

Sets the thread's stack size in bytes. Setting the stack size to 0 will use the default stack size. Typically, the real stack size is rounded up to the nearest page size multiple.

sleep static inline

static void sleep(
    long milliseconds
);

Suspends the current thread for the specified amount of time.

start

void start(
    Runnable & target
);

Starts the thread with the given target.

start

void start(
    Callable target,
    void * pData = 0
);

Starts the thread with the given target and parameter.

tryJoin

bool tryJoin(
    long milliseconds
);

Waits for at most the given interval for the thread to complete. Returns true if the thread has finished, false otherwise.

yield static inline

static void yield();

Yields cpu to other threads.

clearTLS protected

void clearTLS();

Clears the thread's local storage.

makeName protected

std::string makeName();

Creates a unique name for a thread.

tls protected

ThreadLocalStorage & tls();

Returns a reference to the thread's local storage.

uniqueId protected static

static int uniqueId();

Creates and returns a unique id for a thread.

Variables

ThreadImpl::Callable

using ThreadImpl::Callable;