Поток синхронизации в реальном времени на языке C - PullRequest
0 голосов
/ 22 декабря 2018

Я изучаю программирование в реальном времени на C, я все еще новичок.Я создал простую периодическую задачу, которая вычисляет сумму, и теперь я пытаюсь синхронизировать две задачи в реальном времени (периодическая задача), одна из задач будет использовать результат, полученный другой задачей.

Мой вопроскак синхронизировать периодические задачи ??сейчас я хочу сделать это, а затем я попытаюсь использовать приоритеты.

Мой второй вопрос: как я могу использовать pthread_create(&th2, NULL, tache2, "2"), чтобы вернуть int ??

Большое спасибо запомогая мне.

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <semaphore.h>

sem_t evt;

void* tache1(void *arg){
    int i=0;

    while(i<2){
        printf("La tache %s s'execute\n", (char*) arg);

        sem_post(&evt);
        i++;
    }
}

void* tache2(void *arg){
    int i=0;
    while(i<2){
        sem_wait(&evt);
        printf("La tache %s s'execute enfin\n", (char*) arg);

        i++;
    }
}

int main()
{
    pthread_t th1, th2;
    sem_init(&evt, 0,2 );

    pthread_create(&th1, NULL, tache1, "1");
    pthread_create(&th2, NULL, tache2, "2");

    pthread_join(th1, NULL);
    pthread_join(th2, NULL);
    return 0;
}
...