addXXXListener中的synchronized

原创 2004年07月30日 14:29:00
原来用JBuilder的时候有辅助添加事件的功能,但加上的addXXXListener,removeXXXListener,fireXXXEvent的方法签名中老有一个synchronized关键字,不太理解,直到最近自己做的一个事件里涉及到多线程时出错才发现有用,但JBuilder中生成的事件处理方法还稍有不妥,即如果在Listener(事件监听者)中有addXXXListener或removeXXXListener时,会出ConcuurentModificationException,另外由于synchronized的范围比较大,如果事件监听程序运行时间比较长也会有影响,因此做了一个public Collection synchronized getXXXListeners() { return new ArrayList(xxxListeners); }再把fireXXX方法签名中的synchronized去掉,再把其中的xxxListener改用getXXXListeners(),甚至可以把通知每个监听者做成线程(看是否有同步异步的影响而定)。这样的事件处理在我看来应该算是比较能够接受又没有上面的Bug了。还有一个方案,就是把xxxListeners改成用Vector,这样add,remove,get都可以把synchronized去掉,因为Vector本身是一个synchronized版本的Collection。

CTI技术步入JAVA世界的阶梯

华胜天成公司 吕华 2001/05/29 目录 1. 什么是JTAPI 2. JTAPI的结构3. 利用JTAPI搭建CTI程序4. 应用实例分析4.1 外拨模块4.2 消息处理模块5. 结尾 ...
  • changemyself
  • changemyself
  • 2006-04-30 10:27:00
  • 2853

JTAPI(一)

 Sun公司的Java 电话应用程序接口JTAPI Sun公司与Intel、Lucent、Nortel 和Novell一起开发了JTAPI规范。JTAPI本质上是一套可重用的语音呼叫控制对象,应用程序...
  • lgstarzkhl
  • lgstarzkhl
  • 2008-01-09 18:04:00
  • 3216

实现自定义的SWT事件和Listener

继承java.util.EventObject(xxx), 提供一些get方法让客户端获取事件发生的信息。 继承java.util.EventListener(xxxListener),...
  • atusoft
  • atusoft
  • 2007-12-04 16:46:00
  • 694

addXXXListener中的synchronized

原来用JBuilder的时候有辅助添加事件的功能,但加上的addXXXListener,removeXXXListener,fireXXXEvent的方法签名中老有一个synchronized关键字,...
  • zhangweis
  • zhangweis
  • 2004-07-30 14:29:00
  • 765

EventListener的add和remove

  • xuyanli
  • xuyanli
  • 2015-03-26 18:53:50
  • 1049

Java中synchronized和Lock实现并发锁

前言 总结
  • Alone_Rojer
  • Alone_Rojer
  • 2017-03-06 21:07:15
  • 316

java中synchronized关键字的认识&记录

通过具体项目中在线程间同步遇到的问题(app无响应ANR)来阐述synchronized关键字的使用场景。...
  • bibingyan
  • bibingyan
  • 2017-02-21 20:27:57
  • 466

如何自己定制事件的API

http://blog.csdn.net/njchenyi/archive/2006/02/26/610573.aspx   如何自己定制事件的API 最近的实习需要用到手势识别系统,所以不能再用JA...
  • zhouysh
  • zhouysh
  • 2006-08-15 16:54:00
  • 847

Java 注册监听器的方法总结(自身类this+外部类+内部类+匿名内部类+适配器Adapter+一个组件注册多个监听器)

Java 使用接口回调技术实现处理事件的过程,在Java中能触发事件源的对象,都调用addXXXListener(XXXListener  listener)方法将某个对象注册为自己的监听器,参数li...
  • bobo_93
  • bobo_93
  • 2016-09-25 10:28:54
  • 1902

java synchronized的作用

Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。      一、当两个并发线程访问同一个对象object中的这个synchroni...
  • crazy_kid_hnf
  • crazy_kid_hnf
  • 2017-03-15 19:44:20
  • 1110
收藏助手
不良信息举报
您举报文章:addXXXListener中的synchronized
举报原因:
原因补充:

(最多只允许输入30个字)