在我们的项目中传递代码时,我遇到了一个 web 方法,它的末尾有这段代码:
thread.sleep(6000);
return true;
现在,这样做是为了延迟来自客户端的 jQuery ajax 调用,并且 ajax 动画将显示更长的时间。
在我看来这是非常错误的。 UI 和服务器端之间不应该有这种连接。如果他希望动画时间更长,他可以在客户端使用 setTimeOut
函数。
这是我的问题:我如何向程序员解释为什么这是错误的?不仅仅是因为客户端/服务器的事情,还因为为什么要在网站上调用 thread.sleep
?
最佳答案
延迟时:
- 您正在使用/阻塞线程
- 你正在消耗内存
- 你有一个开放的 TCP/IP 连接
这些都是服务器上的昂贵资源
因为:
- 如果有另一个请求,则必须创建一个新线程的可能性更大,因此这将使用 CPU、内存等,这将延迟该请求。 (转到句子开头)。
- 更多的内存消耗,意味着更多的页面错误,更大的磁盘队列。所有请求都需要更长的时间。
- TCP/IP 连接是一种有限的资源。
关于c# - 为什么不无缘无故地使用 thread.sleep,并向程序员解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4144846/