Multihilo: leer desde / escribir en una tubería

Escribo algunos datos en una tubería, posiblemente muchos datos y en intervalos aleatorios. ¿Cómo leer los datos de la tubería?

Esta bien:

en el hilo principal (proceso actual) cree dos hilos más (2, 3)el segundo hilo se escribe a veces en la tubería (¿y se vacía la tubería?)el tercer hilo tiene un bucle infinito que lee la tubería (y luego duerme durante algún tiempo)

¿Esto es correcto hasta ahora?

Ahora, hay algunas cosas que no entiendo:

¿Tengo que bloquear (mutex) la tubería en escritura?IIRC, cuando escribe en la tubería y su búfer se llena, el final de escritura se bloqueará hasta que lea los datos ya escritos, ¿verdad? ¿Cómo verificar los datos de lectura en la tubería, no muy a menudo, no muy raramente? ¿Para que el segundo hilo no bloquee? Hay algo comoselect para tuberías?Es posible configurar el tubo a más sin búfer o tengo que limpiarlo regularmente: ¿cuál es mejor?¿Debo crear un hilo más, solo para limpiar la tubería después de escribir? Porque los bloques de descarga también, cuando el búfer está lleno, ¿verdad? Simplemente no quiero que se bloqueen los hilos 1 y 2 ...

[Editar] Lo siento, pensé que la pregunta es independiente de la plataforma pero por si acaso: estoy viendo esto desde la perspectiva de Win32, posiblemente MinGW C ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta