我正在寻找一些规范的,简单的并发问题,适合于证明我正在使用的库用于并发计算。

为了阐明我的意思是“并发”:我对利用非确定性通信过程的算法感兴趣,而不是对通过将工作分散在多个处理器上,可以使诸如quicksort之类的算法更快地运行。 This是我使用该术语的方式。

我知道Dining Philosophers Problem,这是可以接受的,但是我想知道是否还有其他更令人信服但同样简单的问题。

最佳答案

我通常使用简单的“银行帐户转帐”方案。例如,我在this question on transactions中发布了一个这样的琐碎案例。

这是一个很好的案例,因为:

  • 每个人都了解业务问题。
  • 强调并发环境中事务的重要性。
  • 您可以轻松扩展方案(例如,如果要在进行交易时计算所有当前帐户余额的总和怎么办?)

    为了演示您的并发库,您可以在这种情况下启动一个运行数百万个事务的线程,并演示其他线程如何仍然可以看到世界的一致 View 等。

  • 10-07 19:12
    查看更多