Library: Foundation
Package: Threading
Header: Poco/Thread.h
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.
Direct Base Classes: ThreadImpl
All Base Classes: ThreadImpl
Member Functions: clearTLS, current, currentTid, getMaxOSPriority, getMinOSPriority, getName, getOSPriority, getPriority, getStackSize, id, isRunning, join, makeName, name, setName, setOSPriority, setPriority, setStackSize, sleep, start, tid, tls, tryJoin, uniqueId, yield
typedef ThreadImpl::TIDImpl TID;
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.
Thread();
Creates a thread. Call start() to start it.
Thread(
const std::string & name
);
Creates a named thread. Call start() to start it.
~Thread();
Destroys the thread.
static Thread * current();
Returns the Thread object for the currently active thread. If the current thread is the main thread, 0 is returned.
static TID currentTid();
Returns the native thread ID for the current thread.
static int getMaxOSPriority();
Returns the maximum operating system-specific priority value, which can be passed to setOSPriority().
static int getMinOSPriority();
Returns the mininum operating system-specific priority value, which can be passed to setOSPriority().
std::string getName() const;
Returns the name of the thread.
int getOSPriority() const;
Returns the thread's priority, expressed as an operating system specific priority value.
May return 0 if the priority has not been explicitly set.
Priority getPriority() const;
Returns the thread's priority.
int getStackSize() const;
Returns the thread's stack size in bytes. If the default stack size is used, 0 is returned.
int id() const;
Returns the unique thread ID of the thread.
bool isRunning() const;
Returns true if the thread is running.
void join();
Waits until the thread completes execution. If multiple threads try to join the same thread, the result is undefined.
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.
std::string name() const;
Returns the name of the thread.
void setName(
const std::string & name
);
Sets the name of the thread.
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.
void setPriority(
Priority prio
);
Sets the thread's priority.
Some platform only allow changing a thread's priority if the process has certain privileges.
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.
static void sleep(
long milliseconds
);
Suspends the current thread for the specified amount of time.
void start(
Runnable & target
);
Starts the thread with the given target.
void start(
Callable target,
void * pData = 0
);
Starts the thread with the given target and parameter.
TID tid() const;
Returns the native thread ID of the thread.
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.
static void yield();
Yields cpu to other threads.
void clearTLS();
Clears the thread's local storage.
std::string makeName();
Creates a unique name for a thread.
ThreadLocalStorage & tls();
Returns a reference to the thread's local storage.
static int uniqueId();
Creates and returns a unique id for a thread.
using ThreadImpl::Callable;