`

c++11 thread 初始化

    博客分类:
  • c++
 
阅读更多
class background_task{
public:
    int id;
    int value;
    background_task(int _id, int _value):id(_id),value(_value){
        output();
        std::cout << "initialize.\n";
    }
    void do_something(){
        std::cout << "id = " << id << std::endl;
        id = 2;
        std::cout << "do something.\n";
        std::cout << "id = " << id << std::endl;
    }

    void do_something_else(){
        std::cout << "value = " << value << std::endl;
        value = 20;
        std::cout << "do something else.\n";
        std::cout << "value = " << value << std::endl;
    }

    void output(){
        std::cout << "ID = " << id << ", value = " << value << std::endl;
    }

   // void operator() (background_task &){
    void operator() (){

        do_something();
        do_something_else();
    }

};





int main()
{

    background_task tf(1,10);
    tf.output();
    std::thread t(tf);
    
    //tf.do_something();
    //tf.do_something_else();

    tf.output();
    t.join();
    tf.output();
}

 

  • 大小: 28.6 KB
分享到:
评论

相关推荐

    C++11 线程池 ThreadPool

    2. 初始化线程池,创建固定数量的工作线程。每个工作线程在一个无限循环中检查任务队列,有任务则执行,无任务则等待。 3. 实现任务提交接口,将新任务添加到任务队列,并通知等待的线程。 4. 当不再需要线程池时...

    电子书 深入理解C++11(PDF)

    5. **统一的初始化语法**:C++11引入了花括号初始化,既可以用作列表初始化,也可以用作聚合初始化,统一了旧有的两种初始化方式。 6. **智能指针(Smart Pointers)**:C++11标准库提供了三种智能指针:`std::unique...

    C++11-14教程.pdf

    type_traits库中的decltype可以用于查询表达式的类型,而初始化列表则用于简化复杂类型的初始化。模板编程也得到了加强,包括外部模板、类型别名模板、默认模板参数和变长参数模板等特性。面向对象编程在C++11中得到...

    深入理解C++11完整版

    9. 列表初始化:C++11允许在使用初始化列表初始化类时,自动推导出类的构造函数,并且支持对内置类型进行列表初始化。 10. nullptr关键字:C++11提供了一个新的空指针常量nullptr,用于替代之前的NULL。nullptr是一...

    深入理解C++11.pdf

    1. **统一的初始化语法** - C++11引入了统一初始化语法,使用大括号初始化列表,无论是在类内还是类外,都可以用这种语法来初始化变量。 2. **auto关键字** - auto关键字的引入使得变量的类型可以自动推导,减少...

    C++11(C++新标准)-中文版

    C++11 引入了**统一初始化**(Uniform initialization),它简化了对象的初始化语法,并提高了代码的可读性。 **示例:** ```cpp int x{42}; // 直接初始化 ``` #### 四、核心语言使用性的加强 ##### 4.1 类型推导...

    ISO_C++11英文版

    10. 新的初始化列表:C++11 增强了初始化列表的使用,使得初始化更加统一和强大,支持列表初始化所有类型的对象。 这些知识点仅是 C++11 标准中的冰山一角,C++11 还包括更多细节和特性,它代表了 C++ 编程语言向前...

    深入理解C++11:C++11新特性解析与应用 文字版 epub格式

    5. **统一初始化(Uniform Initialization)**:C++11引入了一种新的初始化方式,使得所有类型的初始化语法统一,减少了错误的可能性。 6. **多线程支持(Thread Library)**:C++11提供了内置的多线程库,包括`std...

    C++11新增特性.zip

    1. 统一的初始化方法:在C++11之前,变量初始化通常采用赋值或构造函数两种方式。C++11引入了统一的初始化语法,如`int x = 5;`或`std::vector&lt;int&gt; v{1, 2, 3};`,使得初始化更加简洁且明确。 2. `auto`关键字:`...

    C++11 ISOIEC 14882 2011

    在函数和变量声明上,C++11引入了统一的初始化方式(Uniform Initialization),通过花括号`{}`来初始化任何类型的对象,无论其是否是聚合类型。这使得初始化更加一致和清晰。 此外,C++11还引入了lambda表达式,这...

    深入理解C++11

    C++11还增加了对统一初始化(Uniform Initialization)的支持,使用花括号{}进行初始化,无论是基本类型、数组还是聚合类型,都可以采用统一的方式,避免了旧版中的一些陷阱和混淆。 此外,C++11对STL容器(如`std:...

    深入理解C++11:C++11新特性解析与应用(高清62M扫描加配套源码)

    7. **多线程支持(Multithreading)**:C++11标准库提供了对多线程编程的支持,包括`std::thread`,`std::mutex`,`std::future`等,使得编写并发程序更加方便。 8. **类型推断(Type inference,也称为模板推导)*...

    ISO C++11和C++14 标准

    6. **多线程支持**:C++11引入了 `&lt;thread&gt;` 库,提供了原生的多线程API,使得并行编程成为可能。 7. **nullptr**:为零指针提供了一个新的关键字,避免了空指针常量的混淆,提高了代码清晰度。 8. **范围基础的...

    深入理解C++11:C++11新特性解析与应用(62M高清扫描版)

    在C++11之前,声明变量时需要显式指定类型,而`auto`关键字允许编译器根据初始化表达式自动推断变量的类型,这大大简化了代码编写,尤其是在使用模板和复杂类型时。 其次,C++11加强了对智能指针(Smart Pointers)...

    C++11标准完整版(ISO+IEC+14882)&C11;标准

    5. **统一的初始化语法(Uniform Initialization)**:使用花括号{}进行初始化,适用于各种类型,简化了初始化过程。 6. **nullptr关键字**:用`nullptr`代替了NULL,明确了零指针的类型,避免了隐式类型转换带来的...

    深入应用C++11代码优化与工程级应用-cosmos.zip

    6. **统一的初始化语法**:C++11引入了统一的初始化语法,如`std::vector&lt;int&gt; vec{1, 2, 3};`,这既可用于构造函数,也可用于初始化数组和其他容器。 7. ** constexpr关键字**:constexpr允许在编译时计算函数和...

    Exploring C++ 11(2nd Edition 2013)-master_C++11_

    11. **统一的初始化(Uniform Initialization)**:C++11引入花括号初始化,如`int x{5};`,可以用于各种类型的初始化,包括数组、结构体、类实例等。 12. **静态_assert**:`static_assert`在编译时检查条件,提供...

    C++11 标准文档

    C++11标准库新增了`&lt;thread&gt;`头文件,提供了对多线程编程的原生支持,包括线程创建、同步原语如互斥量和条件变量等。 7. **变长参数模板(Variadic Templates)** 这一特性允许模板接受任意数量的参数,使得可以...

    c++11FAQ中文版

    - 类型推断(auto):允许编译器从初始化表达式推断变量类型。 - constexpr:允许在编译时计算常量表达式的值。 - decltype:用于推断表达式的类型。 - Lambda表达式:简化了创建匿名函数对象的过程。 - 用户...

Global site tag (gtag.js) - Google Analytics