【问题标题】:Where to use semaphores?在哪里使用信号量?
【发布时间】:2015-03-02 09:01:02
【问题描述】:

我已经阅读了关于Semaphorethere 的内容,现在我想了解的是如何在实际代码中使用该类?信号量的用处是什么?我知道我们可以使用信号量来提高性能,减少资源的并发性。是Semaphore的主要用法吗?

【问题讨论】:

  • What is a semaphore? 的可能副本 我的意思是,它包括一些关于“在哪里”使用它的示例。
  • 信号量是同步进程的资源,除非你创建两个或更多进程,否则你应该忘记信号量。
  • 当您需要在应用程序中使用并发但又想自己处理何时可以访问资源以及希望同时访问多少资源时,您应该开始考虑信号量。
  • example 在哪里可以找到信号量的用法

标签: java concurrency


【解决方案1】:

tl;dr 回答:信号量允许您将某些代码路径的访问限制为一定数量的线程 - 而无需控制处理这些线程的机制。一个示例用例是提供一些资源密集型任务的 Web 服务 - 使用信号量,您可以将该任务限制为即 5 个线程,同时使用应用服务器的更大线程池处理此请求和其他一些类型的请求。

长答案:请参阅 Furkan Omay 的评论。

【讨论】:

    【解决方案2】:

    信号量是java中并发包的一部分。正如包所说,它用于利用对代码的并发访问流。与 Java 中使用信号量的“同步”和“锁定”不同,您可以控制代码对一定数量用户的访问。

    将其视为酒吧中的保镖,允许人们进入或不进入。如果酒吧已满且不能再容纳任何人,他会停下来直到有人离开。信号量可以用来对你的代码做这样的事情!!

    希望对你有帮助!!

    【讨论】:

      猜你喜欢
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-26
      • 2014-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多