boost::thread 使用函数对象来构造线程对象的问题
2012-12-16 14:52
309 查看
本文来讨论一下用函数对象来构造线程对象的问题。
首先什么是函数对象,functionobject.
调用重载操作符()的类,其对象常称为函数对象(functionobject),即它们是行为类似函数的对象
首先什么是函数对象,functionobject.
调用重载操作符()的类,其对象常称为函数对象(functionobject),即它们是行为类似函数的对象
#include<boost/thread/thread.hpp> #include<iostream> usingnamespacestd; usingnamespaceboost; /** *@briefMethod2:Usethefuntionobjectconstructthreadobject. */ classFuncObject { public: FuncObject(intarg):m_arg(arg) { cout<<"Construct."<<endl; }; FuncObject(FuncObject&the) { this->m_arg=the.m_arg; cout<<"Copyconstruct."<<endl; } ~FuncObject() { cout<<"Disconstruct"<<endl; } voidoperator()() { //这里将是线程的运行体... } intGetArg() { returnm_arg; } private: intm_arg; }; intmain() { intb=10; FuncObjecta(b); threadth(a);///<Waring:Theobjectwillbecopied.Oh,Ithas4times! th.join();///<waitingforthethreadover. return0; }
在vs2008运行的结果:
构造函数调用一次,拷贝函数调用了四次,析构函数调用了五次.
这时我作的拷贝函数要轻量级,才能体现出boost::thread效率.
相关文章推荐
- Boost关于bind的使用以及函数对象和传递参数的问题
- BOOST 库 thread类线程使用
- javascript 直接创建对象与间接创建对象 私有函数不能访问this变量 是否使用var声明变量几个问题探讨
- 函数对象的构造与使用例子
- 【C++】boost::bind和函数对象一起使用实现便捷的异步编程
- Boost编程之--使用thread类提高线程开发效率
- JavaWeb开发之Servlet中的线程问题及使用ServletConfig对象操作Servlet中的参数
- 经常遇到的一个问题是 MFC中开启多线程后 在非主线程中使用updata函数出现崩溃的情况。
- python 8-1 如何使用多线程,Thread创建线程,执行函数赋值给target//类+函数放在run方法中执行
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
- Boost笔记--Thread--Ubuntu上初次使用时遇到的问题
- 使用boost.bind绑定class的成员函数作为boost thread的入口
- java线程基础巩固---构造Thread对象你也许不知道的几件事
- thread——MFC下Boost的线程编译错误问题
- c++中函数使用类对象作参数的问题
- JAVA之旅(十二)——Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口
- 关于海思HI3531A平台使用std::thread创建线程问题(未解决)
- BOOST 库 thread类线程使用 [大三四八九月实习]
- BOOST线程、锁与Bind函数的使用
- Spring 创建对象的问题,不同构造方法创建对象,使用工厂类类获取对象、单例或多例、延迟创建问题