<p>最近刚开始玩C++,遇到一些基础问题,下面就是其中之一,将源代码公布一下方便大家查找。</p>
<p>linux C++ 类成员函数中创建线程,且能访问类中其他成员变量.</p>
<p>重点:将线程执行函数声明为非类成员函数,通过参数*arg 将this指针传入线程函数体中。</p>
<p></p>
<p><strong>test.h</strong>
</p>
<p></p>
<p>#ifndef TEST_H<br>
#define TEST_H<br><br>
class test<br>
{<br>
public:<br>
test();<br>
~test();<br>
public:<br>
int p;<br>
void sayHello(int r);<br>
void createThread();<br>
private:<br>
int q;<br>
};<br>
#endif</p>
<p></p>
<p><strong>test.cpp</strong>
</p>
<p></p>
<p>#include "test.h"<br>
#include <string><br>
#include<pthread.h><br>
test::test()<br>
{}<br>
test::~test()<br>
{}<br><br>
void *threadFunction(void *arg)<br>
{<br>
test *obj = (test *)arg;<br>
printf("get p:%d",obj->p);<br>
obj->sayHello(12);<br>
for(;;);<br>
}<br><br>
void test::sayHello(int r)<br>
{<br>
printf("Hello world %d!/n", r);<br>
}<br>
void test::createThread()<br>
{<br>
p = 1;<br>
q = 2;<br>
pthread_t threadID;<br>
pthread_create(&threadID, NULL, threadFunction, this);<br>
getchar();<br>
}<br>
~</p>
<p><strong>main.cpp</strong></p>
<p></p>
<p>#include "test.h"<br>
#include <string><br>
#include <iostream.h><br>
#include <map><br><br>
using namespace std;<br>
int main()<br>
{<br>
test t;<br>
t.createThread();<br>
return 0;<br>
}<br>
~</p>
分享到:
相关推荐
0056 访问其他类的私有成员函数 21 0057 如何定义友员类 22 1.7 多态 23 0058 纯虚函数的使用 23 0059 覆盖基类的成员函数 23 0060 如何应用多重继承 24 0061 如何利用虚函数实现动态绑定 25 0062 ...
2.2 在C++中创建垃圾回收器 7 2.3 选择垃圾回收的算法 8 2.3.1 引用计数 9 2.3.2 标记并清除 9 2.3.3 复制 9 2.3.4 采用哪种算法 9 2.3.5 实现垃圾回收器 10 2.3.6 是否使用多线程 10 2.3.7 何时回收垃圾 10 2.3.8 ...
2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。...
在C中static有了第二种含义:用来表示不能被其它文件访问的全局变量和函数。, 但为了限制全局变量/函数的作用域, 函数或变量前加static使得函数成为静态函数。但此处“static”的含义不是指存储方式,而是指对函数的...
条款15:在资源管理类中提供对原始资源的访问 条款16:成对使用new和delete对象置入智能指针 条款17:以独立语句将newed对象置入智能指针 4.设计与声明 条款18:让接口容易被正确使用,不易被误用 条款19:设计...
所以,用1.x版开发的服务端或客户端代码需要进行修改以适应2.x版中函数的变化:在2.x版中,所有的gSOAP函数都增加了一个参 数用来保存一个gSOAP运行环境实例。这个参数包括了文件描述,表,缓冲,标志位等,它在...
049.MFC_创建线程.mp4 050.MFC_线程控制.mp4 051.MFC_线程同步.mp4 052.MFC_线程同步方法.mp4 053.MFC_缩放位图.mp4 054.MFC_画刷.mp4 055.MFC_GDIPlus.mp4 056.MFC_使用GDIPlus打开和保存图片.mp4 057.MFC...
chap 14:当JNI遇到多线程--java对象如何被C++中的多个线程访问?. 97 chap 15:JNI在多线程中的应用... 101 chap 16:JNI限制(多线程)... 105 chap 17:使用 Java Native Interface 的最佳实践... 106 1....
Android C++高级编程:使用NDK_Onur Cinar, 于红PDF电子书下载 带书签目录 完整版 原书名:Pro Android C++ with the NDK 原出版社: Apress 作者: (美)Onur Cinar 译者: 于红 佘建伟 冯艳红 丛书名: 移动开发...
现在思考当你要从其他命名空间的类中访问 HelloWorld 类。 复制内容到剪贴板 代码: using System; namespace AnotherNameSpace { class AnotherClass { public void Func() { Console.WriteLine ("Hello World...
14.1 Linux线程概述 14.1.1 线程模型 14.1.2 Linux线程库 14.2 创建线程和结束线程 14.3 线程属性 14.4 POSIX信号量 14.5 互斥锁 14.5.1 互斥锁基础API 14.5.2 互斥锁属性 14.5.3 死锁举例 14.6 条件变量 ...
13.2.2 多文档框架类中的常用函数 258 13.3 文档 260 13.3.1 对视图的管理 260 13.3.2 新建或打开文档 262 13.3.3 文档的保存和关闭 264 13.4 视图 264 13.4.1 CView类 265 13.4.2 视图对象的创建 267 13.5 分割式...
08_继承中的同名成员变量和同名成员函数 09_继承的static关键字 10_多继承的基本语法 11_二义性和虚继承解决方案 12_中午课程回顾 13_多继承原理抛砖_传智扫地僧 14_多态思想引言 15_类型兼容性原则遇上还是函数重写...
问:DLL中的模板成员函数? 79 问:CFormView中的上下文帮助? 80 问:CArchive类的WriteObject函数问题? 80 问:RegisterWindowMessage中的BroadcastSystemMessage如何处理? 80 问:CListCtrl中选择变化时如何获得...
私有变量不能直接访问。 -------------------------------------------------------------------------- 2.输入一个字符串,将其逆序后输出。(使用C++,不建议用伪码) #include using namespace std; void ...
这个优化器的分析能力还可以对代码弱点和代码错误给出反馈,诸如未初始化的变量或者OpenMP API issues这些严格依赖编译器前端的编译器不能检测到的状况。 * Profile-guided Optimization (PGO) 通过减少指令缓存...