我正在寻找一些规范的,简单的并发问题,适合于证明我正在使用的库用于并发计算。
为了阐明我的意思是“并发”:我对利用非确定性通信过程的算法感兴趣,而不是对通过将工作分散在多个处理器上,可以使诸如quicksort之类的算法更快地运行。 This是我使用该术语的方式。
我知道Dining Philosophers Problem,这是可以接受的,但是我想知道是否还有其他更令人信服但同样简单的问题。
最佳答案
我通常使用简单的“银行帐户转帐”方案。例如,我在this question on transactions中发布了一个这样的琐碎案例。
这是一个很好的案例,因为:
为了演示您的并发库,您可以在这种情况下启动一个运行数百万个事务的线程,并演示其他线程如何仍然可以看到世界的一致 View 等。