Java 多线程通信 交互解决办法

Java 多线程通信 交互
我现在要实现一个功能,里面有个2个类,同时也是两个线程,A和B,现在A把B启动,B中有Looper,Handler, A就可以发消息给B,然后B完成任务之后,需要给一个对象Bitmap给A,我想问下这个改如何实现,不单单是把这个Bitmap给A就行了,还需要让A处理这个Bitmap

我的想法是B完成之后调用A的函数,传递Bitmap,然后函数内可以处理这个Bitmap,但是这样的话,第一,B需要有A的引用,但是B又是A启动的,这两个就相互引用,我觉得有点乱,第二,B调用A的函数,本质上,这个函数还是在B的线程中的,所以有点不符合要求

然后我在想在A里面也加个Looper?然后B给A发消息?  这个听起来是可行,但是A不是独立的,A作为一个功能类也是被调用的,这样的话加Looper会不会对其他环境造成影响呢?

本人刚接触Java多线程,基础概念都明白,但是通信这一块目前还不是很懂,请大家指教 Java 多线程通信 交互解决办法
------解决思路----------------------
既然是A启动B,那么数据是直接可以交给B的,为什么需要B中有handler
而且B属于专门处理数据的子线程,处理完了就应该结束,难不成你还想让它挂起等待处理新的数据?
真是这样你需要是再重新启动一个线程
所以我认为只需要在A中拥有handler,直接启动B并让B持有A的handler,B处理完后通知A就可以了
如果回来的bitmap处理起来比较耗时,再启动一个线程专门处理bitmap呗
你可以参考下Android AsyncTask异步处理方式

------解决思路----------------------
如果你不想阻塞A线程同时B线程传回的数据也要耗时处理,你可以再起一个含有消息队列的C线程,把图片发给它处理。如果有必要通知,最后把最不耗时的处理结果发给A就可以。我去,好饶,不知道可行性,仅提供参考。
------解决思路----------------------
相互调用耦合度高的情况,用消息机制,A,B线程都通过JMS通信,JMS的消息body里面放两者交互的对象(可以是序列化的类,纯文本或者io流)