Ric*_*ral 0 java concurrency synchronized
与我昨天发布的问题类似,我有这个问题,我无法理解.代码非常简单,应该(我认为)会产生死锁.我甚至将帐号数量减少到2,以增加死锁的可能性.
代码非常容易理解,但是要提供一些上下文.我有一个账户银行,我在账户之间进行大量转账.传输方法应该生成死锁.为什么不发生这种情况?
我只能认为,代码运行太快,但似乎不太可能发生的所有的时间.
这是完整的代码:http: //pastebin.com/HWJpuT38
问题出在这一行:
mAccounts = new ArrayList<Account>(Collections.nCopies(slots, new Account()));
Run Code Online (Sandbox Code Playgroud)
基本上,只有一个Account对象,但很多引用它.因此,您只能锁定单个对象.
如果您创建了许多不同的Account对象,您应该能够很快地看到死锁.
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |