线程基础2

#include <thread>
void func()
{
   // do some work
}
int main()
{
   std::thread t(func);
   t.join();
   return 0;
}

带参数

void func(int i, double d, const std::string& s)
{
    std::cout << i << ", " << d << ", " << s << std::endl;
}
int main()
{
   std::thread t(func, 1, 12.50, "sample");
   t.join();
   return 0;
}
#include <thread>
#include <iostream>
#include <string>
#include <functional>

void greeting(std::string const& message)
{
    std::cout<<message<<std::endl;
}

int main()
{
    std::thread t(std::bind(greeting,"hi!"));
    t.join();
}

 

传引用

void func(int& a)     //这里参数声明要是引用形式
{
    a++;
}
int main()
{
    int a = 42;
    std::thread t(func, std::ref(a)); // 配合函数声明为引用形式,这两者同时存在,a的值才能改变。
    t.join();
    std::cout << a << std::endl;
    return 0;
}

线程调用:类重载()

#include <thread>
#include <iostream>
class SayHello
{
public:
    void operator()() const
    {
        std::cout<<"hello"<<std::endl;
     std::this_thread::sleep_for(std::chrono::seconds(1));
}
};
int main()
{
    std::thread t((SayHello()));
    t.join();
   SayHello hello;
    std::thread t1(hello);
    t1.join();
   std::thread t2=std::thread(SayHello());
     t2.join();

    std::thread t3{ SayHello() };
    t3.join();

}

 线程调用:类成员函数:

#include <thread>
#include <iostream>
# include <memory>

class SayHello
{
public:
    void greeting() const
    {
        std::cout << "hello" << std::endl;
    }
    void good(std::string const& message) const
    {
        std::cout << message << std::endl;
    }

};
int main()
{
    SayHello x;
    std::thread t(&SayHello::greeting, &x);
    std::thread t1(&SayHello::good, &x, "good");
    t.join();
    t1.join();


    std::shared_ptr<SayHello> p(new SayHello);
    std::thread t2(&SayHello::good, p, "goodbye");
    t2.join();
}

 

原文链接: https://www.cnblogs.com/yuguangyuan/p/5857821.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    线程基础2

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/398182

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月11日 上午9:56
下一篇 2023年4月11日 上午9:56

相关推荐