java自定义事件,线程a如何每一秒钟触发一个事件,然后另一个线程b监听之,并作出反应?

如题

线程a是作为事件源,那么线程a这个类就必须提供一个可以增加监听器的方法,就像GUI编程中的addActionListener这个样的方法。线程a这个类里面是有一个专门存放监听器的一个容器,例如是list。然后你 增加监听器的方法就是把监听器放进这个容器里面。你用一个监听器去监听一个事件的发生,就可以在线程a这个类中,写一个产生事件的一段代码,然后每当产生一个事件之后,去遍历list,去调用监听器的对于这个事件的处理方法,这样子就可以了。这应该就是java中的事件模式。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-08
思路,在线程b的操作中调用a.wait(),线程a中触发的事件后面添加notify(),则在b执行到a.wait()的时候,b等待a,a执行到notify(),通知a的等待列表中的b线程进入锁池,此时b有机会继续执行,这样就打到了线程b监听a执行完事件

java自定义事件,线程a如何每一秒钟触发一个事件,然后另一个线程b监听之...
你用一个监听器去监听一个事件的发生,就可以在线程a这个类中,写一个产生事件的一段代码,然后每当产生一个事件之后,去遍历list,去调用监听器的对于这个事件的处理方法,这样子就可以了。这应该就是java中的事件模式。

java 自定义事件的触发及监听
1,先自定义一个事件 public class MyEvent extends java.util.EventObject{ public MyEvent(Object source){ super(source);} } 2,再自定义一个监听器 public class MyListener implements java.util.EventListener{ \/\/这里是当事件发生后的响应过程 public void EventActivated(MyEvent me){ System...

Java实现监听文件变化的三种方法,推荐第三种
public class WatchServiceDemo {public static void main(String[] args) throws IOException {\/\/ 这里的监听必须是目录Path path = Paths.get("\/Users\/zzs\/temp\/");\/\/ 创建WatchService,它是对操作系统的文件监视器的封装,相对之前,不需要遍历文件目录,效率要高很多WatchService watcher = FileSystems.getDefault(...

浅析Java语言的事件处理快捷回复
PropertyListener propertyListener = (propertyListener) iterator next();\/\/调用用户的事件处理程序 propertyListener propertyChanged(propertyEvent);} } } 当属性值发生变化时 首先进行内部处理调用firePropertyChange方法 产生一个事件对象然后用事件对象为参数来调用用户的事件处理程序 三 事件处理的使用 基本...

java怎样监听一个值是否发生了变化,具体代码
java 自定义监听器监听属性变化 import java.util.EventObject;public class MyEvent extends EventObject { private Object obj;private String sName;public MyEvent(Object source,String sName){ super(source);this.obj=source;this.sName=sName;} public Object getObj(){ return obj;} public ...

Netty网络编程框架的核心概念以及入门案例
I\/O线程执行实际的输出操作,例如通过SocketChannel.write(ByteBuffer)输出。2.6EventLoopGroup EventLoopGroup相当于1个事件循环组,这个组里包含多个事件循环EventLoop,EventLoop的主要作用实际就是负责监听网络事件并调用事件处理器进行相关I\/O操作的处理。 EventLoopGroup内部的每个EventLoop通常包含1个Selector和1个事件...

Java中,线程是什么意思,多线程又是什么
在计算机中处理进程之外还有另一个概念就是线程,线程是存在于进程当中,一个进程可以包含多个线程;当我们的计算机有多核处理器的时候,使用多线程可以加快程序的运算速率;如果一个进程中只有一个线程,当程序遇到一个比较耗时的计算的时候,由于程序是单线程的,那么程序只能等待这个运算结束的时候再继续运行...

java中怎么用程序触发按下一个键呢?
然后使用组件的 addKeyListener 方法将从该类所创建的侦听器对象向该组件注册。按下、释放或键入键时生成键盘事件。然后调用侦听器对象中的相关方法并将该 KeyEvent 传递给它。从以下版本开始:1.1 另请参见:KeyAdapter, KeyEvent, Tutorial: Writing a Key Listener 方法摘要 void keyPressed(Key...

JDK14的新特性:JFR,JMC和JFR事件流
用户也可以自定义创建自己的profile文件。Java Mission Control(JMC)是用于Java应用程序管理、监视、概要分析和故障排除的工具套件。在JDK14中,JMC独立发行,用户可下载并安装。通过JMC界面,用户可以启动程序并开始JFR记录,然后通过JMC进行分析。JMC提供了丰富的功能,如概览、MBean浏览器、触发器、系统、...

java初级面试题目?
回答:equals是值比较(一般处理java开发都会这么说,算是ok的)而==是引用比较(或者对象比较);回答equals是可以自定义的,加分 5.将一个数组作为参数传递到一个方法中,在方法中,数组内的元素值被改变了,那么在方法外部,这个数组内的元素是否也被改编了? 回答:是,因为java方法中传递的是引用,就ok。如果回答中,将引...

相似回答