ZK 3.6.4和5.0.2版本servlet线程与事件处理线程的配置区别

 


默认情况下,ZK的过程中一个独立的线程的事件称为事件处理线程。因此,开发人员可以暂停,恢复在任何时间执行,没有阻止发回的响应到浏览器的servlet线程。但是异常情况下的很多个servlet线程被挂起的时候,将严重消耗我们服务器的cup内存,所以zk提供了个一个可以禁用事件处理线程的使用, 换句话说,你可以强制ZK的处理像其他传统的Servlet线程框架的所有事件。 当然,如果Servlet的线程正在执行, 你就不能暂停。 
要禁用的事件处理线程使用,您必须指定以下内容 WEB-INF/zk.xml. 

<system-config>    <disable-event-thread>true</disable-event-thread> 
    </system-config>



这里是优点和有关使用Servlet的线程来处理事件的局限性 
 使用Servlet的线程使用事件处理线程
Integration减集成问题。多容器承担的HTTP请求是在servlet线程处理。 您可能需要执行 EventThreadInit和/或 EventThreadCleanup解决一体化问题。ZK的和社会继续提供多功能一体化的实现来解决问题。
SuspendResume没办法暂停执行的事件监听器。举例来说,你不能创建一个模式窗口。 

没有限制的。 


zk5.0.2与zk3.6.4中事件处理线程配置区别 


在zk5以前的版本中,以下配置默认为false,而在zk5以后默认为true(zk.xml文件中) 


这两种的区别: 

等于false时,启用事件处理线程,等于true时禁用事件处理线程 


启用时,zk创建本地事件处理线程,处理弹出模式窗口,当弹出窗口时,等待用户操作,代码停止执行, 
用户操作完毕后,继续执行代码 
禁用时,zk弹出模式窗口使用servlet线程统一处理,代码执行完毕后,弹出窗口,

if (Messagebox.show("Delete?""Prompt", Messagebox.YES|Messagebox.NO, Messagebox.QUESTION) == Messagebox.YES) {this_never_executes(); } 
this_never_executes();//事件处理线程被启用时方法不会被执行. 


MessageBox.show(.....);//注册一个事件监听器,同样能处理这样的问题. 
Messagebox.show("Delete?""Prompt", Messagebox.YES|Messagebox.NO, Messagebox.QUESTIONnew EventListener() { public voidonEvent(Event evt) { switch (((Integer)evt.getData()).intValue()) { case Messagebox.YES: doYes(); break; //the Yes button is pressed case Messagebox.NO: doNo(); break; //the No button is pressed } } } ); 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值