I have a multi-threaded application where a thread sends a message to another thread. The waiting thread polls for the message and reacts (locks are handled). Like this:
If you can reformulate your problem in terms of task-executor then consider using a SingleThreadExecutor. If you need something more exotic - either a concurrent queue or even wait()/notify().