您的位置:首页 > 其它

创建线程与获取线程标识

2016-01-21 11:53 253 查看
此demo中进程创建了一批线程,可以看到:

所有线程共享进程ID,但是有自己的线程ID。

创建成功的线程的执行顺序是不确定的。

#include <stdio.h>
#include <pthread.h>
//#include <unistd.h>

void *fn(void *arg)
{
printf("thread #%u : my PID is %d\n", (unsigned int)pthread_self(), getpid());
return NULL;
}

int main(int argc, char *argv[])
{
pthread_t tid;
int error;
int i;

for(i=0; i<10; i++)
{
error = pthread_create( &tid, NULL, fn, NULL);
if(0 != error)
{
perror("pthead_create error");
return -1;
}
else
{
printf("main PID %d : create thread #%u OK!\n", getpid(), (unsigned int)tid);
}
}

sleep(3); /* give threads time to print out */
return 0;
}


执行结果:

main PID 2847 : create thread #3076492096 OK!

main PID 2847 : create thread #3068099392 OK!

main PID 2847 : create thread #3059706688 OK!

main PID 2847 : create thread #3051313984 OK!

main PID 2847 : create thread #3042921280 OK!

main PID 2847 : create thread #3034528576 OK!

thread #3059706688 : my PID is 2847

thread #3051313984 : my PID is 2847

thread #3068099392 : my PID is 2847

thread #3042921280 : my PID is 2847

thread #3076492096 : my PID is 2847

thread #3034528576 : my PID is 2847

main PID 2847 : create thread #3026135872 OK!

main PID 2847 : create thread #3017743168 OK!

main PID 2847 : create thread #3009350464 OK!

main PID 2847 : create thread #3000957760 OK!

thread #3009350464 : my PID is 2847

thread #3017743168 : my PID is 2847

thread #3000957760 : my PID is 2847

thread #3026135872 : my PID is 2847
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: