使用 C++11 的线程库 class

Thread base class using C++11

因为我是 C++11 的新手,所以我正在寻找线程基础 class 的正确实现,使用 C++11 多线程功能并将参数传递给 class,开始并停止线程...... 所以像这样的东西: http://www.codeproject.com/Articles/21114/Creating-a-C-Thread-Class 但使用 C++11 可以获得 OS-独立性。

我用谷歌搜索了它,但没有找到任何有用的信息。 也许有人熟悉一个好的开源实现?

编辑 准确解释我的问题: 我已经知道 std::thread,但我的目的分别是为 std::thread 使用包装器-class,而不是大量处理它。我目前正在使用下面的 class-结构(从 1 年开始)。但是我分别被限制在 Windows-API 上,这不是我想要的。

class ThreadBase {
public:
    ThreadBase();
    virtual ~ThreadBase();

    // this is the thread run function, the "concrete" threads implement this method
    virtual int Run() = 0;

    // controlling thread behaviour, Stop(), Resume()  is not that necessary (I implemented it, beacuse the API gives me the opportunity)
    virtual void Start() const;
    virtual void Stop() const;

    // returns a duplicated handle of the thread
    virtual GetDuplicateHdl() const; //does std::thread give me something similar to that?

protected:
        // return the internal thread handle for derived classes only
    virtual GetThreadHdl() const;
    //...block copy constructor and assignment operator

private:
        // the thread function
    void ThreadFunc(void * Param); //for Windows the return value is WINAPI
    //THandleType? ThreadHdl;
    unsigned long ThreadId;
};

看看std::thread

#include <iostream>
#include <thread>

void function()
{
    std::cout << "In Thread\n";
}

int main()
{
    std::thread x(function);
    // You can not let the object x be destroyed
    // until the thread of execution has finished.
    // So best to join the thread here.
    x.join();
}

您需要的所有线程支持都可以找到 here