对服务器超时,程序死锁的问题 -- 头痛

问题描述

各位大大俺现在在做的程序,是swing做前端,有webservice做后端,所以有服务器延迟响应的问题。又因为,给服务器发出request到服务器返回数据,需要冻结整个frame,所以,这里产生了服务器如果持续无返回则frame整个死锁的问题,所以想设置一个超时的限制没有超时的代码是这样的:serverCallCompleted=false;if(SwingUtilities.isEventDispatchThread()){Runnablerunnable=newRunnable(){publicvoidrun(){while(!serverCallCompleted)Thread.yield();}};WaitDialogdlg=newWaitDialog(_frame,message,newDimension(300,60),runnable);dlg.setVisible(true);}

其中serverCallCompleted就是一个bool的类型,初始化为false,只有服务器有返回值时才变成true。除此以外的时间,当前frame上的所有线程全部yield,dlg则是我自己做的一个没有任何按钮的dialog,用来显示当前的状态,比如“程序加载中”很大问题是,请问,怎么加计时器?会不会很大改动?当前的代码已经有不少做出如此的部署,是不是要整个重写?我自己想了个办法,不知各位大大觉得如何:我想在dlg被设置为setVisible(true)的时候,获取dialog弹出时系统的分钟数,然后在run()方法里,不断的检测当前的分钟数,如果两者想减大于2(也就是过了两分钟),就跳出。代码如下if(SwingUtilities.isEventDispatchThread()){Runnablerunnable=newRunnable(){publicvoidrun(){intcurrentMinute=calendar.get(Calendar.MINUTE);while(!serverCallCompleted&&abs(currentMinute-minuteWhenPopup)<2)Thread.yield();}};WaitDialogdlg=newWaitDialog(_accountContactController.getAccountContactFrame(),message,newDimension(300,60),runnable);dlg.setVisible(true);minuteWhenPopup=calendar.get(Calendar.MINUTE);//minuteWhenPopup全局变量}

请问这个方法是不是很白痴?因为好像网上从没这么搞过。请各位路过的朋友指点,谢谢了!!

时间: 2024-12-10 06:35:38

对服务器超时,程序死锁的问题 -- 头痛的相关文章

求解决方案——后台处理过长,前台响应“服务器超时”

问题描述 求解决方案--后台处理过长,前台响应"服务器超时"我是后台要处理万条以上的数据,耗时长,虽然我设置了TImeOUT=36000,但是前台未等到后台的提交,就响应"服务器超时".不知能否在前台提交数据后,后台进行处理,可以切断和前台联系,后台不受前台影响,直到后台处理完成后,再给前台一个提示?或者还有其他更好的解决方案!急求解! 解决方案 解决方案二:开发一个服务,提交给服务进行处理解决方案三:引用1楼liuchaolin的回复: 开发一个服务,提交给服务进

异步 非阻塞-求帮忙设计一个异步非阻塞服务器的程序

问题描述 求帮忙设计一个异步非阻塞服务器的程序 伪代码也可以,尽量使用linux下的函数.我不太明白,select到底实现的是异步还是同步,有的地方说异步,有的地方说同步,还有一种看似权威的说法是实质是同步,是一种伪异步而已.如果select算做异步的话,那么非阻塞又要如何实现呢?求大神!

Frontpage服务器扩充程序

frontpage|程序|服务器 说起FrontPage,相信在我们初学网页制作的朋友来说是一款上手极易的工具软件,但是很多朋友发现将插入其自带的站点计数器的网页上传到服务器后,其计数器并不计数,甚至无法显示计数器,其实这并不是我们制作的错误,而是服务器没有配置好的缘故.那么究竟是哪些没有没有配置好呢,其实是因为站点没有给站点配置服务器扩展程序所导致的! 一.新建网站 由于服务器扩展程序是针对单个网站进行配置的,因此在配置之前我们在IIS中新建一个Web站点. 进入"控制面板"下的&q

.Net服务器应用程序开发概述

在托管领域中,服务器端应用程序是通过运行库宿主实现的.非托管应用程序承载公共语言运行库,后者使您的自定义托管代码可以控制服务器的行为.此模型在获得主服务器的性能和可伸缩性的同时提供给您公共语言运行库和类库的所有功能. 下面图1.1所示显示在不同服务器环境中运行托管代码的基本网络架构.在应用程序逻辑通过托管代码执行时,服务器(如 IIS 和 SQL Server)可执行标准操作. 开发概述-服务器应用程序不可用"> 图 1.1服务器端托管代码 ASP.NET 是使开发人员能够使用 .NET

IIS服务器应用程序不可用解决技巧

这个问题见了好几次,在.net下 Microsoft visual 2005->visual studio tools->visual studio 2005命令提示下输入aspnet_regiis -r,就可以只是重新注册一下而已这是因为你先装了.net而后装了iis用户的权限没加进运引起我的就是这种情况,先安装了.net环境,然后才安装 了IIS. 解决方案汇总: 第一 故障描述:服务器应用程序不可用 您试图在此 Web 服务器上访问的 Web 应用程序当前不可用.请点击 Web 浏览器中

asp.net“服务器应用程序不可用”怎么办

故障分析一:造成asp.net服务器应用程序不可用的情况一般是用户安装了Net Framework之后,然后在安装包IIS程序,这样用的asp.net尚未在IIS上面注册所以才导致找不到服务器. 解决方法: 如果是没有在IIS上面注册而出现的故障的话,那么必须重新在.net命令行上线卸载在安装,然后在aspnet_regllS/i安装,安装完成后重新下IIS,再删除"默认应用程序:这样就能将asp.net站点重新创建了.之后就不会出现服务器不可用的现象了.重新注册.net的命令[C:WINDOW

服务器应用程序不可用的多种解决方案

服务器应用程序不可用解决方案集: 问题描述: 在使用VS2003和2005的时候,按F5(启动)进行调试时,出现如下错误提示: 1 并且在刚进入VS的时候也有服务器错误提示. 辗转在网上找了许多资料,终于把问题解决了! 但是由于这些错误虽然现象一致,但原因可能不尽相同,所以我把最常用的一些处理方案罗列出来,共大家参考,希望对大家有所帮助(当然,这些问题不是孤立存在的,有些方案可能会同时使用到): 方案一: 解析aspx的工作是由进程aspnet_wp.exe完成的,如果你查看了系统日志,就会发现

iOS 请问为什么发送文字消息显示连接服务器超时?

问题描述 昨天还好好的,可是今天发送消息的时候图片消息可以正常发送,但是文字消息发不出去了.错误消息是EMErrorServerTimeout,连接服务器超时而且奇怪的是我重新获取会话的所有消息是包含我发送出去的这条,但是接收方收不到我明天就要提交了..今天出这样的问题..麻烦大神解答一下了~~~ 解决方案 OK!已经解决了.来来回回捣鼓一下午结果发现是因为我的消息扩展带了URL,这个消息扩展只能是基本数据类型[错了也不会报错].我都没注意我还添加过扩展这么个东西,要不是因为切环境带的参数没数据

IIS服务器应用程序不可用解决技巧_win服务器

这个问题见了好几次,在.net下 Microsoft visual 2005->visual studio tools->visual studio 2005命令提示下输入aspnet_regiis -r,就可以只是重新注册一下而已这是因为你先装了.net而后装了iis用户的权限没加进运引起我的就是这种情况,先安装了.net环境,然后才安装 了IIS. 解决方案汇总: 第一 故障描述:服务器应用程序不可用 您试图在此 Web 服务器上访问的 Web 应用程序当前不可用.请点击 Web 浏览器中