gpt4 book ai didi

java - ServletResponse.flushBuffer——它会阻塞直到我的响应被传递吗?

转载 作者:行者123 更新时间:2023-11-28 23:02:16 24 4
gpt4 key购买 nike

我正在使用 Tomcat。 ServletResponse.flushBuffer 的文档说,“强制将缓冲区中的任何内容写入客户端。调用此方法会自动提交响应,这意味着状态代码和 header 将是写的。”但我无法从中弄清楚:在客户端成功收到响应之前,我的 doPost 方法是否会在此函数上被阻止?如果连接时间不佳,ServletResponse.flushBuffer 是否可以卡住线程?还是异步执行交付?

我的目标是衡量我的客户看到响应所花费的时间。我想测量调用 flushBuffer 之前和之后的时间,但我不确定这段时间是否涵盖了将消息传递到客户端套接字的所有过程。

问候,&rzej

最佳答案

will my servlet be blocked on this function until the client successfully receive the response?

没有。 当前线程将被阻塞,直到整个响应被写入套接字发送缓冲区。

In case of poor connection times, may ServletResponse.flushBuffer freeze the servlet?

不,只有当前线程。

Or is the delivery performed asynchronously?

是的,但是响应必须首先被缓冲,见上文。如果缓冲区因对等方未读取或数据尚未交付和确认而填满,则写入线程将阻塞,直到有足够的空间。

关于java - ServletResponse.flushBuffer——它会阻塞直到我的响应被传递吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16934221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com