add synchronous and asynchronous communication channels between threads