zoukankan      html  css  js  c++  java
  • 打印主线程,子线程及其对应的内核级线程pid

    //m3.c
    #include <string.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h> #include <sys/syscall.h> //定义宏 #define gettid() syscall(__NR_gettid)
    //主要加深用户线程和内核级线程对应的模型 pthread_t ntid;
    void *printids(void *s) { pid_t pid; //进程号 pid_t ktid; //内核级线程号 pthread_t utid; //用户级线程号 pid = getpid(); //得到当前进程号 ktid = gettid(); //获得内核级线程线程号 utid = pthread_self(); //获得用户级线程号 //s是外部传入进来的参数 printf("%s pid %u ktid %u utid %u (0x%x) ", (char *)s,(unsigned int)pid,(unsigned int)ktid, (unsigned int)utid,(unsigned int)utid); pause(); } int main(void) { //主线程main()调用pthread_create创建一个子线程 pthread_create(&ntid,NULL,&printids,"new thread:"); //主线程main()调用printids()打印自己的线程号和所属的进程号 printids("main thread:"); sleep(1); return 0; }

    编译:

    gcc m3.c -lpthread -o m3
    执行结果:

    观星:

     

  • 相关阅读:
    windows下配置docker
    libxml2 安装及使用
    lua 5.3 英文手册 自己收集整理版
    Unity3D RPC调用顺序问题
    对于问题的一个思考
    第十三章博客
    第十一章
    第十章博客
    第九章笔记
    S1304数据库前三章测试错题
  • 原文地址:https://www.cnblogs.com/nanfengnan/p/14931891.html
Copyright © 2011-2022 走看看