Los threads (hilos o hebras en castellano) se utilizan para ejecutar procesos concurrentes. Cuando se implementa un programa interactivo como el que nos atañe, en el que hay un proceso que no cesa (el que modula) y que depende de un parámetro de entrada que puede cambiar a lo largo del tiempo (la frecuencia de la señal moduladora), los hilos son la solución. Usaremos un segundo hilo para determinar este parámetro de entrada.
En todo programa escrito en C existe un thread por defecto, el que ejecuta secuencialmente todo el código escrito en el programa. Cuando se desea utilizar otro thread más hay que declararlo de forma explícita. Para ello debemos crear una estructura del tipo pthread_t que se declara en el fichero cabecera pthread.h. A continuación, lanzaremos el nuevo hilo materializado a través de una determinada función. Veremos un ejemplo concreto más adelante en el código que acompaña a esta práctica.