linux下和windows下的 创建线程函数
1 #ifdef __GNUC__ 2 //Linux 3 #include <pthread.h> 4 #define CreateThreadEx(tid,threadFun,args) pthread_create(tid, 0, threadFun, args) 5 #define CloseHandle(ph) 6 7 int pthread_create( 8 //指向线程标识符的指针。 9 pthread_t *restrict tidp, 10 //设置线程属性。传入NULL表示使用默认。 11 const pthread_attr_t *restrict_attr, 12 //新线程所执行的线程函数地址。 13 void*(*start_rtn)(void*), 14 //传给线程函数的参数。 15 void *restrict arg 16 ); 17 #else 18 //windows 19 #include <process.h> 20 #define CreateThreadEx(tid,threadFun,args) _beginthreadex(tid, 0, threadFun, args, 0, NULL) 21 22 HANDLE WINAPI _beginthreadex( 23 //线程内核对象的安全属性,一般传入NULL表示使用默认设置。 24 LPSECURITY_ATTRIBUTES lpThreadAttributes, 25 //线程栈空间大小。传入0表示使用默认大小(1MB)。 26 SIZE_T dwStackSize, 27 //新线程所执行的线程函数地址,多个线程可以使用同一个函数地址。 28 LPTHREAD_START_ROUTINE lpStartAddress, 29 //传给线程函数的参数。 30 LPVOID lpParameter, 31 //指定额外的标志来控制线程的创建,为0表示线程创建之后立即就可以进行调度,如果为CREATE_SUSPENDED则表示线程创建后暂停运行,这样它就无法调度,直到调用ResumeThread()。 32 DWORD dwCreationFlags, 33 //返回线程的ID号,传入NULL表示不需要返回该线程ID号。 34 LPDWORD lpThreadId 35 ); 36 #endif
时间: 2024-10-19 01:47:09