获取线程ID

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取线程ID相关的知识,希望对你有一定的参考价值。

 1 #include <pthread.h>
 2 #include <unistd.h>
 3 #include <stdio.h>
 4 #include <stdlib.h>
 5 #include <string.h>
 6 pthread_t ntid;
7 /** 8 * 功能:打印进程id,打印线程id。 9 * 在编译时注意加上-lpthread参数,以调用静态链接库。因为pthread并非Linux系统的默认库 10 * gcc pthread.c -lpthread -o pthread 11 */ 12 void printids(const char *s) 13 { 14 pid_t pid; 15 pthread_t tid; 16 //获取当前进程id 17 pid = getpid(); 18 //获取当前线程id
19 tid = pthread_self();//获得线程自身的ID 20 //打印当前进程id,打印当前线程id 21 printf("%s pid %u strerrortid %u (0x%x)\n", s, 22 (unsigned int)pid, (unsigned int)tid, (unsigned int)tid); 23 } 24 25 void *th_fn(void *arg) 26 { 27 printids(arg); 28 return NULL; 29 } 30 31 int main(void) 32 { 33 34 int err = 0;
 1 /*
 2 pthread_create函数
 3 
 4 线程创建函数
 5 
 6 头文件及函数原型
 7 #include<pthread.h>
 8 int pthred_creat(pthread_t *restrict tidp,const pthread_attr_t *restric  attr, void *(*start_rtn)(void *),void *restrict arg);
 9 
10 参数
11 第一个参数为指向线程标识符的指针。
12 第二个参数用来设置线程属性。
13 第三个参数是线程运行函数的起始地址。
14 最后一个参数是运行函数的参数。
15 
16 */

35     err = pthread_create(&ntid, NULL, th_fn, "new thread: ");
36     if (err != 0) {
37         fprintf(stderr, "errno: %s", strerror(err));
38         exit(1);
39     }
40     printids("main thread: ");
41     //为了不让进程比线程提前结束,延迟1秒执行
42     sleep(1);
43     return 0;
44 }
1 程序运行结果
2 main thread:  pid 3755 strerrortid 3814000384 (0xe3550700)
3 new thread:   pid 3755 strerrortid 3805734656 (0xe2d6e700)

以上是关于获取线程ID的主要内容,如果未能解决你的问题,请参考以下文章

从 dbid 获取片段 ID

通过 id 从片段获取编辑文本到其托管活动

在 RecyclerView 适配器中调用片段并获取 id

Android获取片段中的布局高度和宽度

线程操作API

从自定义适配器获取片段中的 UI 元素 ID