我想向新手解释线程死锁.我见过许多死锁的例子,有些使用代码,有些使用插图(比如着名的4辆汽车).还有像The Dining Philosophers这样经典的容易陷入僵局的问题,但这些问题可能过于复杂,无法让真正的新手完全掌握.
我正在寻找最简单的代码示例来说明死锁是什么.这个例子应该:
您有什么推荐的吗?
如何使用junit运行并发测试?
假设我有一堂课
public class MessageBoard
{
public synchronized void postMessage(String message)
{
....
}
public void updateMessage(Long id, String message)
{
....
}
}
Run Code Online (Sandbox Code Playgroud)
我想同时测试对这个postMessage的多次访问.有什么建议吗?我希望针对我的所有setter函数(或任何涉及create/update/delete操作的方法)运行这种并发性测试.