服务器是否可以同时收到两个请求? [关闭]

2024-02-10

我对服务器如何处理数千个请求有点困惑。我想如果有数千个请求,最终其中两个请求必须同时到达服务器。如果两条消息同时到达它,它只能处理一条,对吗?

我知道,如果多个请求以非常接近但不完全相同的时间到达服务器,那么它可以在完成另一项工作之前非常快速地将工作分配给其他服务器。我不明白的是,当一台机器在完全相同的时刻收到两个请求时会发生什么。


即使两个CPU完全同时处理请求并且它们发生冲突,那么在某个阶段它们会说“我想做某事,但不能与其他事情同时发生”。如果两个 cpu 完全相同地执行此操作,则会有一个预定义的顺序 - 我想数字较低的 CPU 将获得优先级。

这种阻塞只需要一个或两个周期 - 足够长的时间来表示“我声明对此资源的所有权”(称为锁)。然后该块将被解除阻塞,并且另一个 CPU 可以恢复(只要它不想访问相同的数据)。

这实在是过于简单化了。

此外,如果只有一个网卡,两个请求不可能通过网络“同时进入” - 如果它们完全同时进入(在千兆位网络上),则两个请求数据包会发生冲突;两个请求都将在稍微随机的时间后重试,直到没有冲突。

请记住,这是以计算机的时钟速度运行的(例如高达 3ghz),因此“每秒数千”毫无意义。每秒 100 万个请求,将表现为每 1000 个 CPU 周期 1 个请求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

服务器是否可以同时收到两个请求? [关闭] 的相关文章

随机推荐

  • 使用密码加密/解密字符串 C# Metro 风格

    我想用密码加密和解密字符串 我使用 C 和 WinRT MetroStyle 有人有加密 解密课程吗 Metro 中不存在普通的 Net System Security Cryptography 命名空间 您使用密码引擎 http msdn
  • Angular 6 材质垫选择更改方法已删除

    在 Angular Material Design 6 中 删除了 change 方法 当用户更改选择时 我应该如何替换更改方法以在组件中执行代码 改变它从change to selectionChange
  • 根据 CSV 中的值创建文件夹

    我正在开发一个更大的脚本解决方案的一小部分 其中我需要根据 CSV 中存储的值创建文件夹 然后根据 csv 列中的值将适用的文件移动到新文件夹中 CSV 的格式 fileName folder AC002 Y AC034 Y AC001 X
  • 在文档中添加新元素后,jQuery 显示不起作用

    我正在使用 Ajax Request 将元素加载到 div 容器中 默认情况下我隐藏一个输入框 如果用户单击该 div 上的编辑图标 我想显示输入框 这是我的代码 HTML代码 div class container div
  • 如何将mysql结果集分布在4个数组的多维数组中

    我对这个简直要疯了 花了近 4 个小时试图弄清楚 但没有成功 我正在尝试获取 4 个数组的多维数组中的 mysql 查询结果集 因此 如果结果集返回 8 条记录 则该数组将包含 4 个每组 2 条记录的数组 如果结果集返回 20 条记录 则
  • Chrome/Webkit 音频标签错误?

    我正在尝试让 HTML5 的音频标签在 Chrome 中工作 以下代码在 Firefox 中可以完美运行 您知道为什么它在 Webkit 中无法运行吗 我还应该指出 我也用 mp3 尝试过此操作 无论什么格式 每当对音频调用 play 时
  • 快速创建 BouncyCastle SecureRandom 实例是否有问题?

    如所述随机数生成器仅生成一个随机数 https stackoverflow com q 767999 1709587 创建一个新实例通常是不正确的System Random每次你需要另一个随机数时 因为System Random是根据时钟播
  • VSCODE 精确的按键绑定,想知道当前的上下文。怎么做?

    许多插件可以通过未记录的 API 设置自己的特定 上下文 设置上下文 由于文档没有列出这些自定义上下文 因此我不能只查看文档来了解如何以正确的方式配置我自己的键绑定 是否有可能知道当前环境 array 例如 我想使用键盘快捷键 没有鼠标 导
  • 我需要一个 Python 类来跟踪它被实例化的次数

    我需要一个像这样工作的类 gt gt gt a Foo gt gt gt b Foo gt gt gt c Foo gt gt gt c i 3 这是我的尝试 class Foo object i 0 def init self Foo i
  • Visual Basic 2010 HTTP POST 请求

    如何将 POST HTTP 请求发送到服务器 在 Visual Basic 2010 中 然后接收字符串回复 您可以通过 HttpWebRequest 来完成此操作 只需设置HttpWebRequest Method http msdn m
  • 通过字符串从枚举获取 Case

    我寻找一个简单的解决方案来通过字符串获取枚举的情况 有 BackedEnums 例如
  • 如何在向量的每个值之间写入逗号?

    我想将向量导出到文件中 每个值之间用逗号分隔 我尝试过使用paste with sep 但它不起作用 有谁知道为什么 gt x lt rnorm 10 gt paste x sep 1 1 08574649988891 2 95803811
  • C 中如何解析链接宏?

    如果我想使用预处理器 define语句可以轻松定义和计算常量和常用函数 并利用较少的 RAM 开销 与使用const值 但是 我不确定如果同时使用多个宏 它们将如何解决 我正在设计自己的DateTime代码处理 类似于 Linux 时间戳
  • 为 Python 3.x 编译 zbar

    几年前 我花了一些时间寻找一种方法zbar使用 Python 2 7 Windows x64 我发布了这个工作解决方案 如何在 最好是纯 Python 中解码 QR 码图像 https stackoverflow com questions
  • 单击模式框时按钮没有被触发

    Assign a Textbox Value to the modal box on the same page已答复 新问题 为什么当我单击按钮时模式框上的按钮没有被触发 我错过了什么吗 我添加了代码来处理服务器端的点击事件 Protec
  • 如何让元素在容器内浮动

    我想把 container在屏幕中央并制作 图表 float left在 的里面 container 但是使用下面的代码 图表 位于 container 谁能告诉我如何更改代码 并告诉我为什么代码将 图表 放在 container cont
  • 什么是 virtualenv,为什么我应该使用它?

    我正在尝试使用此命令安装 Python 包 pip install
  • 如何使用selenium java在mozilla firefox上使用假网络摄像头

    我正在尝试自动化一个包含网络摄像头流的网站 为了使其自动化 我需要某种方法来伪造网络摄像头 我知道这个选项 use fake device for media stream在 Chrome 中模拟网络摄像头 这在 Chrome 中对我有用
  • jqGrid 和动态分组

    我正在对 jqGrid 进行一些动态分组 按照以下位置发布的示例 http www trirand com blog jqgrid jqgrid html http www trirand com blog jqgrid jqgrid ht
  • 服务器是否可以同时收到两个请求? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我对服务器如何处理数千个请求有点困惑 我想如果有数千个请求 最终其中两个请求必须同时到达服务器 如果两条消息同时到达它 它只能处理一条 对