Я пытаюсь написать программу C, которая включает потоки. Пользователь вводит число, и создается поток для вычисления значения sin для этого числа. Прямо сейчас, когда я компилирую и запускаю код, поток никогда не заканчивается. Я также включил шаги, которые я использую для компиляции этой программы, в комментарии в моем исходном коде.
#include <stdio.h>
#include <math.h>
#include <pthread.h>
/*
compile:
1. gcc MyName.c -o MyName -lm -lpthread
2. ./MyName.c
*/
double result;
double x;
void *calcSin(void *u);
int main()
{
pthread_t tid;
pthread_attr_t attr;
pthread_attr_init(&attr); //Set thread attributes
pthread_create(&tid, &attr, calcSin, NULL); //Create thread
pthread_join(tid,NULL); //Wait until new thread completes
printf("First thread completed here is sin: %lf\n", result);
return 0;
}
void *calcSin(void *u)
{
result = 0;
printf("Enter first number: \n");
scanf("%lf\n",&x);
result = sin(x);
pthread_exit(0);
}