要理解UI线程,先要了解一下“消息循环”这个概念。链接是百度百科上的条目,简单地说,操作系统把用户界面上的每个操作都转化成为对应的消息,加入消息队列。然后把消息转发给对应的应用程序(一般来说,就是活动窗口),应用程序根据自己的逻辑处理这些消息。 如果应用程序处理某个消息事件的时候,用了很长的时间,这 ...
分类:
编程语言 时间:
2017-07-07 13:23:04
阅读次数:
223
在某些情况下(例如通过网络访问数据),常常不希望程序卡住而占用太多时间以至于造成界面假死。 在这时、我们可以通过Thread、Thread + Invoke(UI)或者是 delegate.BeginInvoke 来避免界面假死, 但是这样做时,某些代码或者是某个方法的执行超时的时间还是无法操控的。 ...
jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除。 ...
分类:
Web程序 时间:
2017-07-04 13:20:54
阅读次数:
399
最近开发一个界面,为了实现界面延时自动关闭,加了一句代码Thread.Sleep(2000)。开发过程中未发现问题。后来测试发现,如果这个时候点击界面,会导致系统崩溃。 于是找了一些资料,得到如下解决办法: ...
分类:
其他好文 时间:
2017-06-30 09:50:57
阅读次数:
206
在GIS数据处理中,数据量大是一个非常伤脑筋的问题。最近,在写一个CAD注记转Shapefile文件时,又遇到这个问题。 曾经处理一次数据,达130万个点,即测试区域内的栅格转成点全部处理,程序是写好了,但速度之慢啊,关键问题是处理到一半报奇怪的错误,最后只好将数据分成6份,去实验室开了6台机子来分 ...
分类:
其他好文 时间:
2017-06-23 12:54:34
阅读次数:
250
如果在2台不同的公网机器,对TCP的c/s做过详细的压力测试,那么很不幸,会有很多人发现自己的server端会出现大量的假死连接。 假死连接具体表现如下: 1、在s端机器上,会有一些处于TCP_ESTABLISHED状态的“正常”连接; 2、但是在c端机器上,你的tcp客户端已经提示当前连接已经断开 ...
分类:
其他好文 时间:
2017-06-22 18:34:34
阅读次数:
233
TCP状态转移要点 TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不 会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态 ...
分类:
其他好文 时间:
2017-06-22 14:46:02
阅读次数:
208
1. tcp连接会占用系统资源(文件描述符), 有时候甚至会导致系统假死(不能发起或者处理tcp请求)。 2. TIME_WAIT状态tcp过多的原因: TIME_WAIT等待状态,这个状态又叫做2MSL状态,主动关闭方会出现TIME_WAIT。状态说的是在TIME_WAIT2发送了最后一个ACK数 ...
分类:
其他好文 时间:
2017-06-14 22:17:41
阅读次数:
163
判断apache是否启动可以通过多种方式ps:[root@bogon~]#ps-aux|grephttpdnetstat:[root@bogon~]#netstat-tlun查看80端口的占用情况,但是当apache假死或者其他程序占用80端口的时候这样的判断就不一定准确。推荐使用另一种方式判断,那就是nmap扫描工具。安装nmap:[root@bogo..
分类:
Web程序 时间:
2017-06-07 21:40:48
阅读次数:
704
刚开始的时候没有太在意,但是随着系统的发布,这种初次请求,或者闲置若干时间后第一次请求的漫长等待使得App的体验很差,很多时候App加载好半天数据都没过来。如果前端没处理好,还会导致App的假死。所以就花了点功夫研究下什么原因导致。 刚开始的时候,还以为是WebService的框架出了问题。后面使用 ...
分类:
其他好文 时间:
2017-06-04 21:27:53
阅读次数:
201