`

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并发编程:多线程std::thread

    一:概述 C++11引入了thread类,大大降低了多线程使用的复杂度,原先使用多线程只能用系统的API,无法...2.初始化构造函数 template explicit thread(Fn&& fn, Args&&… args); 创建std::thread执行对象,线程调用thre

    消费者生产者模型 c++

    //初始化每个线程的请求队列; for(int j=0;j&lt;MAX_THREAD_NUM;j++) { for(int k=0;k&lt;MAX_THREAD_NUM;k++) Thread_Info[j].thread_request[k] = -1; Thread_Info[j].n_request = 0; } //初始化临界区; ...

    c++程序设计案例

    i++) //初始化各窗口 { g_prisit[i] = 0; g_pubsit[i] = 0; g_bussit[i] = 0; g_queue[i] = 0; } gotoxy(13, 0); cout 欢迎来到本银行办理业务-------------------------"; g_mutexpri = CreateMutex(NULL...

    c++多线程的创建挂起执行与销毁

    并在对话框的初始化函数中,设定进度条的范围;为编辑框关联一个整型的变量;为12个按钮添加消息处理函数; 2. 定义结构体:用做线程函数的参数传递 typedef struct Threadinfo{ CProgressCtrl *progress;//进度条...

    C++网络爬虫项目

    进程入口函数在进行必要的命令行参数处理和系统初始化以后,进入网络爬虫 的多路输入输出循环,一旦发现某个与服务器相连的套接字有数据可读,即创WEBCRAWLER 网络爬虫实训项目 10 建接收线程,后者负责抓取页面内容...

    一个极易使用的C++版RTOS

    这是一个面向对象,极易使用的RTOS,是市面上任何OS都不能比的,请看一段代码便知: 1 #include "os.h" // 包含OS 2 osThread Task1;...22 // 其它外设初始化 23 os::Start(TaskMain); // 启动OS 24 }

    VS2010中使用C++创建和使用DL.docx

    DLL_THREAD_ATTACH:该通知告诉所有的DLL执行线程的初始化。当进程创建一个新的线程时,系统会查看进程地址空间中所有的DLL文件映射,之后用DLL_THREAD_ATTACH来调用DLL中的DllMain函数。要注意的是,系统不会为进程...

    java,c/c++,php,c#安全编码规范

    2.1.1 避免类初始化的相互依赖 15 2.2 表达式 16 2.2.1 不可忽略方法的返回值 16 2.2.2 不要引用空指针 16 2.2.3 使用Arrays.equals()来比较数组的内容 16 2.3 数字类型和操作 17 2.3.1 防止整数溢出 17 2.3.2 ...

    C++及标准库中的那些大坑

    1. 变量初始化  这是使用 C++11 codecvt 时遇到的一个坑,转换编码时,mbstate_t 这个中间状态...  经验:C++中的变量一定要初始化后再使用。  2. 匿名 std::thread 对象  这个坑要和 boost 进行比较,在 boost

    005_Thread.zip

    【C++ 语言】线程 ( 线程创建方法 | 线程标识符 | 线程属性 | 线程属性初始化 | 线程属性销毁 | 分离线程 | 线程调度策略 | 线程优先级 | 线程等待 ) ... 博客源码

    LearningNote:C++和Linux学习笔记

    别再徘徊于{}与()之间了,来学习初始化的正确用法 编译器优化之copy elision、RVO 提高C++程序员的自我修养 from 剖析STL内存分配器 编译器优化之 Empty Base Class Optimization 走近 std::tuple,揭秘异质容器 走...

    ACE技术论文集(已翻译为中文)

    此论文集汇集了10篇外国技术专家在...第 9 章 接受器-连接器(Acceptor-Connector):用于连接和初始化通信服务的对象创建模式 第 10 章 服务配置器(Service Configurator)模式:通过服务配置器模式动态配置通信服务

    【RT-Thread作品秀】家庭医用多功能检测仪-电路方案

    系统开启后,主要进行RT_Thread系统内部初始化,然后进行各个线程的调用。 软件模块说明Main线程进入Main线程后,会先通过Wifi模块获取网络时间和天气情况。这就相当于系统启动后,会先获取网络时间和天气情况,到达...

    C++线程安全的单例模式

     需要用锁,来保证其线程安全性:原因:多个线程可能进入判断是否已经存在实例的if语句,从而non thread safety.  使用double-check来保证thread safety.但是如果处理大量数据时,该锁才成为严重的性能瓶颈。 ...

    VC驿站基础班无KEY高清C++教程下载地址

    ②、新对话框的初始化工作; ③、两个对话框之间数据传递的几种方法。 4、对话框控件不同类型成员变量的绑定 ①、控件各种类型变量的绑定、最大值及最小值问题; ②、对话框数据交换与验证机制; ③、各种开源...

    Delphi中制作DLL中回调函数的应用

    三 DLL的初始化和退出清理[如果需要初始化和退出清理] 1 DLLProc[SysUtils单元的一个Pointer]是DLL的入口。在此你可用你的函数替换了它的入口。但你的函数必须符合以下要求[其实就是一个回调函数]。如下: procedure...

    使用设计模式中的单例模式来实现C++的boost库

    需要用锁,来保证其线程安全性:原因:多个线程可能进入判断是否已经存在实例的if语句,从而non thread safety。 使用double-check来保证thread safety。但是如果处理大量数据时,该锁才成为严重的性能瓶颈。 1、...

    Visual C++ 编程资源大全(英文源码 表单)

    21.zip Parse phone fields 解析电话区域(11KB)&lt;END&gt;&lt;br&gt;22,22.zip Changing the default file open/save dialogs in an MFC doc/view application 初始化对话框和支持动态数据交换(DDX)(15KB)&lt;END&gt;&lt;br&gt;...

    vc++ 开发实例源码包

    1.初始状态只监听连接,不捕获IP数据 2.鼠标右击列表选择或取消监控某端口数据 3.为防止ping攻击,一般情况ping数据全部监控 4.监控某端口数据时,不监控ping包 5.数据超过20k将被清空 6.右边窗口停止抓包后显示十六...

    leetcode下载-Learning-Coding:学习编码

    vector:各种初始化方式的区别 queue:empty函数 test_algorithm.cpp :C++中algorithm库中自带的算法 排序算法sort() C++ primer第11.3.6小节中出现的单词置换程序,用到了文件输入输出流、字符流、字典 character....

Global site tag (gtag.js) - Google Analytics