什么是并发程序的"Hello World"?

jbe*_*man 21 language-agnostic algorithm concurrency

我正在寻找一些规范,简单的并发问题,适合演示我正在使用的并发计算库的用法.

澄清"并发"的意思:我对利用非确定性通信过程的算法感兴趣,而不是通过将工作分散到多个处理器上来使快速排序等算法运行得更快.就是我使用这个术语的方式.

我知道餐饮哲学家的问题,这是可以接受的,但我想知道是否有更令人信服但同样简单的问题.

mik*_*era 6

我通常使用简单的"银行帐户转帐"方案.例如,我在这个关于交易的问题上发布了一个这样简单的案例.

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

  • 每个人都了解业务问题.
  • 它强调并发环境中事务的重要性.
  • 您可以轻松扩展业务情景(例如,如果您想在交易发生时计算所有当前账户余额的总和,该怎么办?)

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