现在的位置: 首页 > 综合 > 正文

poxis的多线程在串口类里面的实现

2014年02月23日 ⁄ 综合 ⁄ 共 487字 ⁄ 字号 评论关闭

今天,想把串口通信相关的东西,整合到串口类comm里面,pthread_create 是 POSIX 标准下创建线程的函数,函数原型是:
int pthread_create(pthread_t *thread, pthread_attr_t *attr, void*(*start_routine)(void *), void *arg);

在 C 中,这个函数使用很简单,只要定义一个参数和返回值均为 void * 类型的函数,使用函数名字作为参数即可。就算不完全符合,可以使用 (void *(*)(void *)) 将其强制转换为符合类型检查规格的函数指针。但是,类的非静态成员函数隐含 this 指针作为第一个参数,所以参数完全不可能转化为 void * 类型,必须申明为static类型 ,但是在qt2版本中,不支持static void *f(*)的指针函数,可改为一般静态成员函数 static void f(*);在thread_create()里面执行pthread_create()就可以了。

使用时:

    comm *mycom;
    mycom = new comm();
    mycom->create_thread();

抱歉!评论已关闭.