gpt4 book ai didi

c - pthreads 以相反的顺序运行

转载 作者:太空宇宙 更新时间:2023-11-04 11:56:51 25 4
gpt4 key购买 nike

<分区>

我有这个非常简单的代码:

void *myfunc (void *variable);

int main(int argc, char *argv[])
{
pthread_t thread1, thread2;
char *msg1 = "First thread";
char *msg2 = "Second thread";
int ret1, ret2;

ret1 = pthread_create(&thread1, NULL, myfunc, (void *) msg1);
ret2 = pthread_create(&thread2, NULL, myfunc, (void *) msg2);

pthread_join(thread1, NULL);
pthread_join(thread2, NULL);

printf("First thread ret1 = %d\n", ret1);
printf("Second thread ret2 = %d\n", ret2);
return 0;
}

void *myfunc (void *variable)
{
char *msg;
msg = (char *) variable;
printf("%s\n", msg);
}

这是我一直得到的结果:

Second thread 
First thread
First thread ret1 = 0
Second thread ret2 = 0

在我之前创建第一个线程的代码中,但第二个线程似乎运行第一个。据我所知,您无法控制哪个线程先运行,但我已经多次运行该程序,使用“for”循环,结果始终相同,看起来并不随机。有什么方法可以确保我创建的第一个线程首先运行?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com