#include <stdio.h> #include <pthread.h> /** @typedef funcThreadRoute @breif 线程函数 */ typedef void *(*funcThreadRoute)(void*); /* bool CreateDetachedThread(funcThreadRoute route, void *param,bool scope) { int ret; pthread_t thread; pthread_attr_t attr; pthread_attr_init(&attr); if(scope) { pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM); } pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); ret = (pthread_create(&thread, &attr, route,param) == 0); pthread_attr_destroy(&attr); printf("TTT----ret[%d]\n",ret); return ret; }*/ pthread_t th; int CreateThread(pthread_t thread, funcThreadRoute func, void *param ) { bool ret; pthread_attr_t thread_attr; ret = pthread_attr_init(&thread_attr); if(ret != 0) { return -1; } ret = pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED); if(ret != 0) { (void)pthread_attr_destroy(&thread_attr); return -1; } ret = pthread_create(&thread, &thread_attr, func, param); if(ret != 0) { (void)pthread_attr_destroy(&thread_attr); return -1; } (void)pthread_attr_destroy(&thread_attr); pthread_exit(NULL); return 0; } void *printff(void *p) { printf("TTTTTTTT--------hello--num[%d]\n",*(int *)p); } int main(int argc,char *argv[]) { int ret; int n=1000; ret = CreateThread(th,printff, (void*)&n); if(ret < 0) { printf("create thread error\n"); } return 0; } 编译:g++ phtread.cpp -o pthread -lpthread 注:编译时记得加链接库 -lpthread
|
|