Using std::thread in an object-oriented fashion
If you have been looking for the C++ thread class that looks similar to the Thread
classes in Java or Qt threads, I'm sure you will find this interesting:
#include <iostream> #include <thread> using namespace std; class Thread { private: thread *pThread; bool stopped; void run(); public: Thread(); ~Thread(); void start(); void stop(); void join(); void detach(); };
This is a wrapper class that works as a convenience class for the C++ thread support library in this book. The Thread::run()
method is our user-defined thread procedure. As I don't want the client code to invoke the Thread::run()
method directly, I have declared the run method private
. In order to start the thread, the client code has to invoke the start method on the thread
object.
The corresponding Thread.cpp
source file looks like this:
#include "Thread.h" Thread::Thread() { pThread = NULL; stopped = false...