C ++线程和classess

时间:2015-12-20 08:31:10

标签: c++ multithreading

我最近一直在使用线程程序,简单的东西 - 它的工作原理。 我想现在改进它或以面向对象的方式重写它。

我正在使用Code :: Blocks,因为我了解到我将类存储在单独的文件中。在那里我有.h文件中的原型函数。 我想问的问题是: 我应该在哪里开始线程?我应该在哪里加入他们?在“main.cpp”文件中? 如果我存储类和函数,你能提供一些关于如何启动这些线程的简单例子吗?在不同的文件? 由于
我的班级文件

#include "fooCheck.h"
#include <iostream>

fooCheck::fooCheck()
{
    std::cout << "blah blah" << std::endl;
    std::cout << "ctor"<< std::endl;    
}

int fooCheck::fooFS(){   <- I want this to be startred as a thread
    some code
    return 1;
}

我的头文件

    class fooCheck
{
    public:
        fooCheck();
        int fooFS();
    private:
};

#endif

和我的main()cpp文件...

#include stuff_stuff_stuff
#include "fooCheck.h"

int main()
{
    ICMP_check foo_acces_object;
    foo_acces_object.fooFS();
}

因此,放置的对象可以正常工作并从类中执行该函数。 我想从类中启动函数并将其作为一个线程执行。 我尝试的是:     std :: thread tt1 {foo_check :: fooFS()};     std :: thread tt1 {fooFS()}; 关于如何推进这项工作的任何建议?

1 个答案:

答案 0 :(得分:-1)

我已经提出了一种运行c ++线程的模式,它与生成线程所属的类具有相同的生命周期。它基本上是c ++类的线程模式,它避免了使用c ++线程时的一些常见问题。

http://blog.chrisd.info/how-to-run-threads/