java 监听mq消息 底层是用线程实现的吗
答案:1 悬赏:10 手机版
解决时间 2021-11-11 13:56
- 提问者网友:饥饿走向夜
- 2021-11-10 17:09
java 监听mq消息 底层是用线程实现的吗
最佳答案
- 五星知识达人网友:玩世
- 2021-11-10 18:27
不是通过线程实现的,它是通过一种注册--通知机制实现的。在java的设计模式中,有一种模式叫:观察者模式,和这个类似。举个例子,本例子是一个简单的监听当数据发生变化时要做的操作。
1,我们先定义一个接口,可以让多个监听者实现
1,我们先定义一个接口,可以让多个监听者实现
public interface IDataListen {
public void update(Object event,Object msg);
}2,实现一监听者public class DataListen implements IDataListen{
@Override
public void update(Object event, Object arg) {
// TODO Auto-generated method stub
System.out.println("数据发生了变化");
}
}3,被监听者public class DataManager{
private ListlistenList = new ArrayList<>();
public void notifyListen(Object event,Object msg){
for(IDataListen dataListen : listenList){
dataListen.update(null, null);
}
}
public void addListen(IDataListen dataListen){
listenList.add(dataListen);
}
public void updateData(Object msg){
this.notifyListen(null, msg);
}
public static void main(String[] args) {
DataManager dataManager = new DataManager();
IDataListen dataListen1 = new DataListen();
IDataListen dataListen2 = new DataListen();
dataManager.addListen(dataListen1);
dataManager.addListen(dataListen2);
dataManager.updateData("aaa");
}
}main方法里面是监听的应用。这样就可以监听DataManager中的updateData行为了,当有数据发生变化时,就可以即时被监听者收到。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯