0

我正在阅读关于应用 C++ 中的线程同步

共享资源也可以是不那么有形的东西,例如带宽、应用程序在单位时间内可以发送或接收的信息量。例如,许多线程可以同时从套接字请求信息,例如获取网页或其他信息。大多数操作系统可以同时管理成百上千的连接,并且会耐心等待信息到达。管理不是问题,但及时接收信息才是问题。如果运行您的应用程序的机器需要持续不断的信息流,您可能会发现您尝试访问的信息超出了您可以接收的可用带宽。

我对上述段落的问题是

  1. 作者所说的“管理不是问题,信息的及时接收才是问题”是什么意思。要求用简单的例子来说明。

  2. 另一个问题是作者所说的“如果运行您的应用程序的机器需要持续不断的信息流,您可能会发现您正在尝试访问的信息比您可以接收的可用带宽更多”是什么意思。为什么作者谈论机器需要恒定流,我们会发现我们正在尝试访问比可用带宽更多的信息。请求用简单的例子进行详细说明。

感谢您的时间和帮助。

4

1 回答 1

0
  1. 数据终将到来。

    他们认为,如果每个线程都独立于其他线程请求数据,这可能会导致一个线程请求的急需数据卡在另一个线程请求的队列后面的队列中。

    如果您的应用程序的正确运行依赖于在某个时间点可用的数据(例如视频流应用程序),那么您需要明确的带宽管理,或者协作(线程相互通信),或者抢先式(配置外部组件)。

  2. 最好的例子是视频流应用程序。如果您的视频数据没有及时到达,即使有足够的计算能力,也会停止播放。

于 2013-07-29T14:39:06.610 回答