JAVA关于线程和触发求大神实现

小弟有如下需求:
两个线程A,B
线程A负责业务检查,当有符合条件的数据时,给线程B的Queue推送一条数据。
线程B是负责遍历Queue,当Queue为空时,B进入等待状态,直到A往B的Queue里面
添加了数据,B被唤醒。
用C#很好实现,不知道JAVA里面该怎么写。

生产者消费者问题,A是生产者,B是消费者
http://blog.csdn.net/havedream_one/article/details/46755509

百度一下观察者模式吧 。大概就是把B加到A的列表里面。当A抓取到数据后遍历这个列表向列表中的对象推送数据。B一直监控自己的queue。当queue不为空的时候执行xx操作。
A{
List threadList;
public void setObserver(Thread t){
threadList.add(t);
}
//A捕捉到数据的时候执行
public void onChange(){
遍历list向lisi中的对象推送信息
for(){
threadList.get(i).set(获得的数据);
}
}
}
B我就不写了

如果在项目中的使用JMS吧,
我想也可以使用定时任务。写连个job,一个是触发A的,另一个是触发B的。