I have several objects that sit on threads. I would like to shared data between classes.

I have two threads that I want to interact if possible. I have a Message Manager class and a Console class. I want each to sit on their own thread. My problem is this. Suppose I have input in the Console class which is ok, because its thread has a loop that basically sits there waiting for input. Say I get some input like D_PAD_DOWN. I want to be able to send a message to the message manager saying D_PAD_DOWN occurred. Then Message Manager goes off and does its own thing. Message Manager has its own loop as well that adds messages to a queue and dispatches the messages to a Scheduler.