关于创建线程的函数:extern int pthread_create __P ((pthread_t *__thread, __const pthread_attr_t *__attr,void *(*__start_routine) (void *), void *__arg));
解释一下第三个参数的具体意思。
呵呵,我也知道分成这两部分。
我想请教各位高手的是:
这个函数是linux系统的一个自带的创建线程函数,不过我还有点不明白的是,如果我想在函数定义部分打印优先级,怎样把优先级传到函数。
我写的函数(部分)是这样的:
pthread_attr_t attr_2; //线程1的属性结构 pthread_t id_2; //线程1 标识 sched_param param_2; //存放优先级结构 int newprio2=80; //优先级 pthread_attr_init(&attr_2);//初始化 pthread_attr_setscope(&attr_2,PTHREAD_SCOPE_SYSTEM);//设为绑定 pthread_attr_getschedparam(&attr_2,¶m_2); //取优先级 param.sched_priority=newprio2;//赋值 pthread_attr_setschedparam(&attr_2,¶m_2); //放优先级 ret1=pthread_create(&id_2,&attr_2,thread_2,&newprio2); //创建线程
在创建线程的时候,我想把优先级传到thread_2函数中去,怎样传?
是ret1=pthread_create(&id_2,&attr_2,thread_2,&newprio2); 还是
ret1=pthread_create(&id_2,&attr_2,thread_2(int * newprio2),NULL);
如果是后者的话,而extern int pthread_create __P ((pthread_t *__thread, __const pthread_attr_t *__attr,void *(*__start_routine) (void *), void *__arg)); 是linux系统的一个函数,不知道可不可以修改各个参数的类型,如果不可以修改的话,那么上面的第二种传递的方法就是错的。