По некоторым причинам, я хочу использовать pthread в проекте. И мне необходимо, чтобы корутины работали параллельно и результат выводили также.
Код:
#include <pthread.h>
#include <stdio.h>
void sleep(double time){for(double i =0; i<time; i ++){};};
void* zapis_v_terminal(char *str, double time)
{
for(int i = 0; i < 5; i++)
{
printf(str);
sleep(time);
}
return NULL;
}
int main(void)
{
pthread_t t1, t2;
pthread_create(&t1, NULL, zapis_v_terminal("Perviy potok rabotaet\n", 100000000), NULL);
pthread_detach(t1);
pthread_create(&t2, NULL, zapis_v_terminal("Vtoroy ne ochen\n", 10000000), NULL);
pthread_detach(t2);
printf("Rabota zavershena uspeshno\n");
return 0;
}
Вывод:
Perviy potok rabotaet
Perviy potok rabotaet
Perviy potok rabotaet
Perviy potok rabotaet
Perviy potok rabotaet
Vtoroy ne ochen
Ошибка сегментирования (образ памяти сброшен на диск)
P. S: Я в этой теме не разбираюсь, отдельное спасибо если напишите будут ли последствия использования одной переменной t вместо t1 и t2