Linux 线程调用到函数在一个类中 那必须将该函数声明为静态函数函数

发布于 2024-07-09 15:37:31 字数 1200 浏览 19 评论 0

因为静态成员函数属于静态全局区,线程可以共享这个区域,故可以各自调用。

#include <iostream>  
#include <pthread.h>

using namespace std;

#define NUM_THREADS 5

class Hello
{
public:
static void* say_hello( void* args )
{
cout << "hello..." << endl;
return NULL;
}
};

int main()
{
pthread_t tids[NUM_THREADS];
for( int i = 0; i < NUM_THREADS; ++i )
{
int ret = pthread_create( &tids[i], NULL, Hello::say_hello, NULL );
if( ret != 0 )
{
cout << "pthread_create error:error_code" << ret << endl;
}
}
pthread_exit( NULL );
return 0;
}

测试结果:

jack@jack:~/coding/muti_thread$ ./pthread_chap2
hello...hello...hello...
hello...
hello...

jack@jack:~/coding/muti_thread$ ./pthread_chap2
hello...
hello...
hello...
hello...
hello...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

清秋悲枫

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

xu362930323

文章 0 评论 0

缱倦旧时光

文章 0 评论 0

qq_eXruk9

文章 0 评论 0

遂心如意

文章 0 评论 0

guojiayue1

文章 0 评论 0

愿与i

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文