E / S en programa concurrente

Estoy trabajando en un programa concurrente; tiene dos hilos, uno de los cuales escucha los mensajes de un servidor y el otro le envía mensajes. Necesito obtener comandos del usuario (¿usando cin?) Y mostrar mensajes provenientes del servidor ambos al mismo tiempo.

¿Cómo puedo manejar esa situación? El problema es que si estoy leyendo un comando del usuario cuando llega un mensaje, la entrada del usuario está en mal estado con otras cosas.

Gracias por adelantado