首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

Linux多线程学习(4)pthread_self

2012-09-20 
Linux多线程学习(四)pthread_self原型:#include pthread.hpthread_t pthread_self(void)说明:获取本进

Linux多线程学习(四)pthread_self
原型:

#include <pthread.h>
pthread_t pthread_self(void);


说明:
获取本进程自身的 ID。进程 ID 类型是 pthread_t ,这个类型一般为long long 型,8个字节。

测试代码:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

void *thread_one ()
{    printf ("thread_one pid is %lld\n", getpid());
    printf ("thread_one tid is %lld\n", pthread_self());
}

void *thread_two()
{    printf ("thread_two pid is %lld\n", getpid());
    printf ("thread_two tid is %lld\n", pthread_self());
}

int main (int argc, char **argv)
{
    pid_t pid;
    pthread_t tid_one, tid_two;
    
    if ((pid = fork()) == -1) {
        perror ("fork");
        exit (EXIT_FAILURE);
    } else if (pid == 0) {
        pthread_create (&tid_one, NULL, (void *)thread_one, NULL);
        pthread_join (tid_one, NULL);
    } else {
        pthread_create (&tid_two, NULL, (void *)thread_two, NULL);
        pthread_join (tid_two, NULL);
    }

    wait (NULL);    return 0;
}
编译 gcc -o pthread_self -lpthread pthread_self.c运行结果:thread_one pid is 17480
thread_one tid is -1208779872
thread_two pid is 17479
thread_two tid is -1208779872

热点排行