`

【zk开发】理解zk事件处理线程

    博客分类:
  • ZK
阅读更多

 

什么是事件处理线程(EventProcessingThread): 在启用事件处理线程时,zk的事件都是在单独的线程中处理的。 例如用户点击了一个已被监听的按钮 , 那么这个按钮的点击事件将被回传到服务器端,在事件处理阶段, zk会为该事件创建一个线程,单独 处理该事件,该线程即为事件处理线程( EventProcessingThread的实现类),如果开发者监听 了该事件,那么在该事件处理线程中(即同一线程内), 开发者监听器将被自动调用。

 

Messagebox.show()对话框的暂停功能如何实现的:

 

在启用事件处理线程时,一个注册程序,如果用户未输入用户名或密码, 调用Messagebox.show()提示用户, 代码暂停执行,当客户点击确定按钮时,代码从Messagebox.show()处继续执行。该功能是怎样实现的呢 ?从上面的事件处理线程的介绍中我们知道, 事件处理线程和开发者的事件监听器(如window实现类中的onXxx,

Composer中的onXxx, 或addEventListener注册的监听器、或者页面中组件的事件处理等等) 其实是同一线程,

在Messagebox.show()的方法内有这样一个方法Executions.wait(_mutex),该方法的功能即暂停当前事件处理线程 。当客户端点击弹出窗口上的按钮时,客户端发送该事件请求,服务器事件处理阶段,创建一个新的线程并查找

弹出窗口时的事件处理线程 ,并notify激活该线程, 然后代码会从Messagebox.show()出继续执行 从上面的介绍我们了解到,在启用事件处理线程时,所有的事件都是在事件处理线程中处理的,zk为每个事件创建崭新的线程进行处理, 当有大量用户大量的事件请求时,这将是一个不小的数目!线程之前的切换占用了大多cpu时间,并且线程本身占用很多的内存,

严重影响性能。 因此,从zk5.0以后,zk添加了禁用事件处理线程的功能,禁用事件处理线程时,所有的事件都将在

servlet线程中被处理,性能明显提高

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1
0
分享到:
评论

相关推荐

    zk_lock:用zk实现的分布式锁

    zk_lock 用zk实现的分布式锁 实现分布式锁 保留线程中断特性 保留条件锁特性 同一进程内多线程竞争,进行本地排队 支持本地排队优先执行策略

    淘宝分布式调度框架TBSchedule

    淘宝分布式调度框架TBSchedule是淘宝的一块开源软件,TBSchedule有很多特性,包括批量任务,多主机,多线程,动态扩展,实时或定时任务,分片,并发,不重复执行。TBSchedule依赖于ZK存储调度数据,在使用中充当着...

    zk第三节-解答1

    答:昨天那个列子是consumer dubbo的话服务端和客户端都做了(N43)1、在用zookeeper实现分布式锁的时候,线程1加锁后,为什么不通过watc

    2022最新Java面试题、八股文大全

    基础篇、JVM篇、多线程&并发篇、Spring篇、Mybatis、SpringBoot、mysql、SpringCloud、Dubbo、Nginx、MQ、算法、Linux、ZK、Redis、分布式、网络、应试技巧等等; Java程序员必备知识图谱,一起学起来,卷起来;

    2022Java面试题以及直通大厂八股文大全

    基础篇、JVM篇、多线程&并发篇、Spring篇、Mybatis、SpringBoot、mysql、SpringCloud、Dubbo、Nginx、MQ、算法、Linux、ZK、Redis、分布式、网络、应试技巧等等; Java程序员必备知识图谱,一起学起来,卷起来;

    天空组态软件免费版

    5、精美的而快速的界面处理技术、最少内存使用、让用户可以开发精美工控画面而实现高效工控软件。 6、作为软硬件生产商、软硬件完美结合、雄厚的技术实力、让用户只专注于工控系统而不是软件本身。 7、内置数据...

    Java+八股文面经宝典+资源合集

    java面试宝典 ...基础篇、JVM篇、多线程&并发篇、Spring篇、Mybatis、SpringBoot、mysql、SpringCloud、Dubbo、Nginx、MQ、算法、Linux、ZK、Redis、分布式、网络、应试技巧等等;Java程序员必备知识图谱。

    java开源包1

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    Mycat-server-1.6-RELEASE源码

    Mycat关键特性 关键特性 支持SQL92标准 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法 遵守Mysql原生协议,跨语言...集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。

    java开源包11

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包2

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包3

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包6

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包5

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包10

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包4

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包8

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包7

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包9

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包101

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

Global site tag (gtag.js) - Google Analytics