Chinaunix首页 | 论坛 | 博客
  • 博客访问: 338157
  • 博文数量: 73
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1293
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-07 11:17
个人简介

爱运动,爱看书,爱生活!

文章分类

全部博文(73)

文章存档

2014年(7)

2013年(66)

分类: C/C++

2013-07-28 11:36:04

#include
#include
#include

using namespace std;

class Book{
    private:
    static  void *s_run( void *d );
     int id;
     pthread_t tid;
    public:
     Book(int i):id(i){}
     void start( );
     void print();
};
//线程函数必须为静态函数,即她不依赖对象而存在,即使对象不存在了,她也能够执行

void* Book::s_run( void *d )
{
    Book *bth = (Book*)d;
    bth->print();
}
void Book::print()
{
    while( 1 ){
    printf("id=%d\n",id);
    }

}

//启动线程的函数,并等待主线程结束
void Book::start(  )
{
    pthread_create( &tid,0,Book::s_run,this );
    pthread_join( tid,NULL );
}
int main()
{
    Book b(1);
    b.start();
}

阅读(1446) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~