我如何在 C 中显示线程的属性?
How do i display the attributes of a thread in C?
由于pthread_t
是一个结构体,我想我可以直接获取属性。检查此页面并看到线程属性的名称(detachedstate、schedparam 等)所以我这样尝试:
pthread_t t1;
void routine() {
printf(t1.inheritsched);
}
int main(int argc, char **argv) {
pthread_create(&t1, NULL, &routine, NULL);
pthread_join(t1, NULL);
return 0;
}
但是我得到一个错误,基本上说 pthread_t
不是一个结构,这让我很惊讶。
到底发生了什么,我如何显示线程的属性?
Upon successful completion, pthread_create()
shall store the ID of the created thread in the location referenced by thread
.
因此我们知道pthread_t
只是线程的ID,确切的类型是not stated in the specification。
由于pthread_t
是一个结构体,我想我可以直接获取属性。检查此页面并看到线程属性的名称(detachedstate、schedparam 等)所以我这样尝试:
pthread_t t1;
void routine() {
printf(t1.inheritsched);
}
int main(int argc, char **argv) {
pthread_create(&t1, NULL, &routine, NULL);
pthread_join(t1, NULL);
return 0;
}
但是我得到一个错误,基本上说 pthread_t
不是一个结构,这让我很惊讶。
到底发生了什么,我如何显示线程的属性?
Upon successful completion,
pthread_create()
shall store the ID of the created thread in the location referenced bythread
.
因此我们知道pthread_t
只是线程的ID,确切的类型是not stated in the specification。