Linux 线程调用到函数在一个类中 那必须将该函数声明为静态函数函数
因为静态成员函数属于静态全局区,线程可以共享这个区域,故可以各自调用。
#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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论