Comunicação entre dois threads em pthread

Eu estou criando dois segmentos thread1 e thread2. Thread1 está lendo o valor analógico e thread2 deve processar o valor analógico lido em thread1 e define os argumentos PWM. o que eu fiz até agora é, no arquivo principal (onde estou criando threads) eu declarei uma variável global (para armazenar o valor analógico) e passando o ponteiro para a variável global para ambos os threads. Em thread1, o valor analógico de leitura armazenado na variável global e na thread2 lê a variável global e processa-a. Então, minha pergunta é se existe alguma outra maneira de fazer isso? ou seja, temos semáforos, mutex, etc, o que é mais adequado para esta aplicação?

questionAnswers(2)

yourAnswerToTheQuestion