创建多线程函数

来源:互联网 发布:高漫mac手绘板驱动 编辑:程序博客网 时间:2024/06/05 00:44
int inline thread_create(void * (*ThreadFun)(void *), void *arg) {#ifdef_win32    unsigned id;    HANDLE t = _beginthreadex(NULL, 0, ThreadFun, arg, 0, &id);    //创建线程    第一个参数,安全属性,NULL为默认安全属性//  第二个参数指定线程堆栈的大小,如果为0,则线程堆栈大小和创建它的线程相同//  第三个参数,指定线程函数的地址,也就是线程调用执行的函数地址(用函数名即可,函数名表示地址)//  第四个参数,传递给 线程的参数的指针,可以通过传入对象的指针,在线程中再转化为类的指针//  第五个参数,线程初始化状态,0立即运行//  第六个参数,用于记录线程ID的地址//  创建线程成功,则返回0    thread_list[thread_num++] = id;    return (int) t;#else    pthread_t Thread;    int r = pthread_create(&Thread, 0, ThreadFun, arg);//  第一个参数,线程标识符用 pthread_t创建//  第二个参数,线程属性设置,0表示默认属性的线程//  第三个参数,线程函数的起始地址,即线程调用执行的函数地址。//  第四个参数,传递给函数的参数//  创建线程成功,返回0    thread_list[thread_num++] = Thread;    return r;#endif}
0 0