Linux 创建的线程不';我不会被处决

Linux 创建的线程不';我不会被处决,linux,pthreads,Linux,Pthreads,在这里,我再次提出一个关于这个(该死的)线程编程的新问题。 这是我的代码,希望您能帮助我理解它的错误(请记住,我必须再次编写此代码,而不是复制粘贴,因此可能存在一些类型错误-编译后的代码正常工作,因此问题不在于语法) #包括 #包括 #包括 #包括 int i=0; 无效*TFun(无效*TArg) { printf(“线程i=%d\n”,i); i++; 返回NULL; } int main() { pthread_t TID; TID=pthread_create(&TID,NULL,TFu

在这里,我再次提出一个关于这个(该死的)线程编程的新问题。 这是我的代码,希望您能帮助我理解它的错误(请记住,我必须再次编写此代码,而不是复制粘贴,因此可能存在一些类型错误-编译后的代码正常工作,因此问题不在于语法)

#包括
#包括
#包括
#包括
int i=0;
无效*TFun(无效*TArg)
{
printf(“线程i=%d\n”,i);
i++;
返回NULL;
}
int main()
{
pthread_t TID;
TID=pthread_create(&TID,NULL,TFun,NULL);
pthread_join(TID,NULL);
printf(“线程i=%d\n”,i);
i++;
出口(0);
}
我希望打印“线程I=0”,然后打印“主I=1”,但这不会发生。它只打印“MAIN i=0”,线程不执行


TID的值通常通过引用写入
pthread_create()
中,但也被
int
返回值覆盖;更改为添加的
int
变量:

(旧)

(新)


TID的值通常通过引用写入
pthread_create()
,但也被
int
返回值覆盖;更改为添加的
int
变量:

(旧)

(新)


... 关键的一点是,由于
TID
值已损坏,
pthread\u join
调用无效。此外,如果OP仔细检查了函数的返回值,就会知道
pthread\u join
失败了。。。。关键的一点是,由于
TID
值已损坏,
pthread\u join
调用无效。此外,如果OP仔细检查了函数的返回值,就会知道
pthread\u join
失败了。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>

int i=0;

void *TFun(void *TArg)
{
printf("THREAD    i=%d\n", i);
i++;
return NULL;
}

int main()
{
pthread_t TID;

TID=pthread_create(&TID, NULL, TFun, NULL);
pthread_join(TID, NULL);

printf("THREAD    i=%d\n", i);
i++;

exit(0);
}
TID=pthread_create(&TID, NULL, TFun, NULL);
int pcr;
pcr = pthread_create(&TID, NULL, TFun, NULL);