在C#上测试并发循环缓冲区的好例子

时间:2012-11-17 16:39:31

标签: c# multithreading algorithm testing

我在C#上实现了并发循环缓冲区,现在想测试它的工作。我有非常简单的API - void Write(T element)T Read()。我正在寻找一个很好的例子,如何测试所有可能的用例并检测所有可能的错误,包括竞争条件。简单的替代写入和从2个线程读取似乎不是一个好主意,因为我们无法控制顺序来自不同线程的API调用。

1 个答案:

答案 0 :(得分:3)

其中一个用例应该包括写入缓冲区(不读取它)直到缓冲区已满。

如果您的测试用例实现了从同一个线程的读写,那么您可以控制读/写的顺序。

当多线程代码中线程安全的实现足够简单,可以“通过检查”验证时,即通过代码审查(而不仅仅是通过测试),我喜欢它。