Thread Class Reference
#include <Thread.h>
Inheritance diagram for Thread:
Public Member Functions | |
Thread () | |
Thread (const Task &, bool autoCancel=false) | |
~Thread () | |
Destroy the Thread. | |
bool | operator== (const Thread &t) const |
Comparison operator. | |
bool | operator!= (const Thread &t) const |
Comparison operator. | |
void | wait () |
bool | wait (unsigned long timeout) |
void | setPriority (Priority p) |
Priority | getPriority () |
bool | interrupt () |
virtual bool | isCanceled () |
virtual void | cancel () |
Static Public Member Functions | |
bool | interrupted () |
bool | canceled () |
void | sleep (unsigned long timeout) |
void | yield () |
Detailed Description
- Author:
- Eric Crahen <http://www.code-foo.com>
- Date:
- <2003-07-27T11:17:59-0400>
- Version:
- 2.3.0
Examples
Launching a task
A thread is started simply by constructing a thread object and giving it a task to perform. The thread will continue to run its task, even after the Thread object used to launch the thread has gone out of scope.
#include "zthread/Thread.h" #include <iostream> using namespace ZThread; class aRunnable : public Runnable { void run() { Thread::sleep(1000); std::cout << "Hello from another thread" << std::endl; } }; int main() { try { // Implictly constructs a Task Thread t(new aRunnable); } catch(Synchronization_Exception& e) { std::cerr << e.what() << std::endl; } std::cout << "Hello from the main thread" << std::endl; // Output: // Hello from the main thread // Hello from another thread return 0; }
Waiting for a task
A user can exercise some simple synchronization by waiting for a thread to complete running its task.
#include "zthread/Thread.h" #include <iostream> using namespace ZThread; class aRunnable : public Runnable { public: void run() { Thread::sleep(1000); std::cout << "Hello from another thread" << std::endl; } }; int main() { try { // Implictly constructs a Task Thread t(new aRunnable); t.wait(); } catch(Synchronization_Exception& e) { std::cerr << e.what() << std::endl; } std::cout << "Hello from the main thread" << std::endl; // Output: // Hello from another thread // Hello from the main thread return 0; }
Sharing a task
The same task can be shared by more than one thread. A Task is constructed from a Runnable, and that Task object is copied by value and handed off to each thread.
#include "zthread/Thread.h" #include <iostream> using namespace ZThread; class aRunnable : public Runnable { void run() { Thread::sleep(1000); std::cout << "Hello from another thread" << std::endl; } }; int main() { try { // Explictly constructs a Task Task task(new aRunnable); // Two threads created to run the same Task Thread t1(task); Thread t2(task); } catch(Synchronization_Exception& e) { std::cerr << e.what() << std::endl; } std::cout << "Hello from the main thread" << std::endl; // Output: // Hello from the main thread // Hello from another thread // Hello from another thread return 0; }
Constructor & Destructor Documentation
|
Create a Thread that represents the current thread. Using the static members of Thread should be preferred over using this constructor |
|
Create a Thread that spawns a new thread to run the given task.
|
Member Function Documentation
|
Interrupt and cancel this thread in a single operation. The thread will return true whenever its cancelation status is tested in the future.
Implements Cancelable. |
|
Tests whether the current Thread has been canceled, and clears the interrupted status.
|
|
Get the priority of this Thread.
|
|
Interrupts this thread, setting the interrupted status of the thread. This status is cleared by one of three methods. If this thread is blocked when this method is called, the thread will abort that blocking operation with an Interrupted_Exception.
Threads already blocked by an operation on a synchronization object will abort that operation with an Interrupted_Exception, clearing the threads interrupted status as in the first case described above. Interrupting a thread that is no longer running will have no effect.
|
|
Tests whether the current Thread has been interrupt()ed, clearing its interruption status.
|
|
Tests whether this thread has been canceled. If called from the context of this thread, the interrupted status is cleared.
Implements Cancelable. |
|
Change the priority of this Thread. This will change the actual priority of the thread when the OS supports it. If there is no real priority support, it's simulated.
|
|
Put the currently executing thread to sleep for a given amount of time.
|
|
Wait for the thread represented by this object to complete its task. The calling thread is blocked until the thread represented by this object exits, or until the timeout expires.
Implements Waitable. |
|
Wait for the thread represented by this object to complete its task. The calling thread is blocked until the thread represented by this object exits.
Implements Waitable. |
|
Cause the currently executing thread to yield, allowing the scheduler to assign some execution time to another thread. |
The documentation for this class was generated from the following file:
- Thread.h