首先,是准备工作,包含头文件

#include <iostream>
#include <boost/bind.hpp>
#include <boost/thread.hpp>
#include <boost/thread/mutex.hpp>using namespace std;//线程休眠,毫秒级
#define  BOOST_SLEEP(n)  boost::thread::sleep(boost::get_system_time()+boost::posix_time::millisec(n))

然后,创建一个简单的类CTest,

class CTest
{
public:CTest(){};~CTest(){};void        Func();static void FuncThread(void *pData);
};void CTest::Func()
{cout<<"here is CTest::Func this="<<this<<endl;boost::thread thTest(boost::bind(CTest::FuncThread,this));thTest.join();
}
void CTest::FuncThread(void *pData)
{CTest *pOwner = (CTest*)pData;while(1){cout<<"here is CTest::FuncThread  running. this="<<pOwner<<endl;BOOST_SLEEP(1000);}
}

最后,测试一下

int _tmain(int argc, _TCHAR* argv[])
{CTest test;test.Func();return 0;
}

关键点在于,作为线程的成员函数,必须是静态的。

测试第二下,在类外部调用类成员函数产生线程

int _tmain(int argc, _TCHAR* argv[])
{CTest test;boost::thread thTest(boost::bind(CTest::FuncThread,&test));thTest.join();return 0;}

转载于:https://www.cnblogs.com/ttmoon/p/7658224.html

boost线程之类成员函数相关推荐

  1. Boost:用成员函数测试bind <void>

    Boost:用成员函数测试bind 实现功能 C++实现代码 实现功能 boost::bind模块,用成员函数测试bind C++实现代码 #include <boost/config.hpp& ...

  2. C++11多线程,thread库; mutex类,成员函数lock(), unlock();unique_lock<mutex>模板类

    文章目录 进程和线程 1. 进程 2. 线程 C++11多线程编程 1. C++11新标准 2. 创建线程 1. 普通函数 2. 仿函数 3. 成员函数 4. 多线程数据保护(数据一致性) 进程和线程 ...

  3. 第三节 线程传参详解、detach()大坑、成员函数做线程函数

    1.传递临时对象作为线程参数 原始的输入程序如下: #include <iostream> #include <thread>using namespace std;void ...

  4. Item 16: 让const成员函数做到线程安全

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果我们在数学领域里工作,我们可能会发现用一个类来表示多项式会很方 ...

  5. 【C++多线程系列】【四】将类的成员函数作为线程启动函数

    2019独角兽企业重金招聘Python工程师标准>>> #include<iostream> #include<thread> using namespace ...

  6. linux线程创建 类函数吗,linux多线程创建时使用类成员函数作为参数

    实际上所有线程都是用来处理C函数的,而不是C++类成员函数.标准库中提供一个API函数,这个函数以回调函数指针作为线程的执行代码并在单独的线程中调用回调函数.问题是在这样的线程库中不能创建执行对象成员 ...

  7. boost::regex模块在 cpp 文件中搜索类定义,使用绑定成员函数回调测试程序

    boost::regex模块在 cpp 文件中搜索类定义,使用绑定成员函数回调测试程序 实现功能 C++实现代码 实现功能 boost::regex模块在 cpp 文件中搜索类定义,使用绑定成员函数回 ...

  8. Boost:使用/type <>语法测试成员函数

    Boost:使用/type <>语法测试成员函数 实现功能 C++实现代码 实现功能 使用/type <>语法测试成员函数 C++实现代码 #include <boost ...

  9. Boost:bind的noexcept成员函数的type <>语法的测试程序

    Boost:bind的noexcept成员函数的type <>语法的测试程序 实现功能 C++实现代码 实现功能 bind的noexcept成员函数的type <>语法的测试程 ...

最新文章

  1. linux学习笔记一
  2. R语言ggplot2可视化分组变量下的数据分布(线条、色彩配置)、WVPlots包的ShadowHist函数比较分组下的数据直方图、ggplot2分面图facet_wrap可视化分组变量下的数据分布
  3. Nginx使用http auth basic认证保护后台admin
  4. ‘FactorAnalyzer‘ object has no attribute ‘analyze‘和fa.loadings改成fa.loadings报错解决
  5. 【Mac】『终端』显示、隐藏所有文件
  6. Spring Boot 扩展点应用之工厂加载机制
  7. 大理三塔,及崇圣寺里的假深沉
  8. mysql普通索引自增_mysql中联合索引中的自增列的增长策略
  9. php 变量 换行,php去除换行符的方法小结(PHP_EOL变量的使用)_PHP教程
  10. UVALive - 6442
  11. 内容分发网络CDN(互联网技术)
  12. 【稳定性day7】mPaaS - 蚂蚁金服高可用的产品化之路
  13. Step4:从单应矩阵中分离得到内参和外参(需要拍摄n=3张标定图片)
  14. 中国自由软件推广先锋的自述,心潮澎湃的一往无前,一定要看!作者:洪峰...
  15. python--转换wrf输出的风场数据为网页可视化的json格式
  16. 最新kali之cadaver
  17. 献给母亲节的技术大礼包
  18. Java第十天笔记01——文件与流
  19. httpclient+jsoup实现小说线上采集阅读
  20. 超详细git clone一个项目的方法

热门文章

  1. mysql 1067错误,服务无法启动 进程意外终止
  2. 用 GRUB 引导自己的操作系统
  3. ViewPager之引导界面---实现欢迎引导页面
  4. 重构-改善既有代码的设计:编写代码22宗罪(三)
  5. rewind和fseek
  6. 《编码:隐匿在计算机软硬件背后的语言(美)》读书笔记四
  7. 数据结构:链表面试题
  8. 操作系统五: 非连续内存分配
  9. 《CCIE路由和交换认证考试指南(第5版) (第2卷)》——1.2节构建BGP邻居关系...
  10. 似然估计中为什么要取对数以GMM为例