Я хочу сделать так, чтобы родительский процесс выполнялся до того, как дочерний поток выполнит. Я не уверен, где я ошибаюсь, чтобы получить заказ, который выводит моя программа.Как выполнить родительский befor child thread - pthreads in c
int status = 0;
void *print_child(void *arg)
{
while (status == 0)
{
printf("Signal hasn't changed..\n");
sleep(1);
}
printf("The child has started...\n");
printf("The child is done! \n ");
}
int main()
{
pthread_t child;
pthread_create(&child, NULL, &print_child, NULL);
sleep(2);
printf("The parent has started...\n");
printf("The parent is done! \n");
status++;
if (pthread_join(child, NULL))
{
printf("ERROR");
exit(1);
}
}
ВЫВОД:
signal has changed
signal has changed
parent has started
parent is done
child has started
child is done
Если вы хотите последовательно выполнять действия, зачем использовать потоки? Потоки делаются параллельно. –
Вы устанавливаете родителя, чтобы спать, пока ребенок работает так .... – LPs
@DarkFalcon Это пахнет как школьное задание – LPs