小编avi*_*007的帖子

带有 pthread 函数的静态存储

我正在练习一些多线程程序,但我无法弄清楚这个输出背后的逻辑。

#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>

int print_message(void* ptr);

int main()
{
pthread_t thread1,thread2;
char *mesg1 = "Thread 1";
char *mesg2 = "Thread 2";

int iret1, iret2;

pthread_create(&thread1, NULL, print_message, (void *)mesg1);
pthread_create(&thread2, NULL, print_message, (void *)mesg2);

pthread_join(thread1,(void*)&iret1 );
pthread_join(thread2, (void*)&iret2);

printf("Thread 1 return : %d\n", (int)iret1);
printf("Thread 2 return : %d\n", (int)iret2);
return 0;

}

int print_message(void *ptr)
 {
char *mesg;
static int i=0;
mesg = (char *)ptr;
printf("%s\n",mesg);
i++;
return ((void*)i);

}
Run Code Online (Sandbox Code Playgroud)

我期待输出

Thread 1
Thread 2
Thread 1 return …
Run Code Online (Sandbox Code Playgroud)

c linux pthreads

2
推荐指数
1
解决办法
3279
查看次数

标签 统计

c ×1

linux ×1

pthreads ×1