![]() |
1
2
问得好。我能想到的唯一解决办法基本上是: ASM . (ASM提供了一个很好的示例,说明如何在类装入器中使用字节码重写。)
多亏了ASM库中良好的访问者模式,这不应该超过一两屏代码。 |
![]() |
2
0
尝试通过创造性地使用print语句来调试concurreny问题是一场失败的战斗,因为print语句可能有自己的并发错误,并且不能按预期的顺序打印。试图调试或打印出一个concurreny bug听起来不错,但我不认为它会得到你想要的结果。你需要用仔细的思考和逻辑来证明你的代码是正确的(更多的是计算机科学而不是软件工程)。 并发问题非常困难。如果您在实践中没有读过并发,请确保您已经读过它。然后看看所有可能的方法,你的同步块可以达到,所有的事情,它可以改变的范围以外的锁,等等。 |
![]() |
3
0
不幸的是,这需要Solaris或OSX。 幸运的是,OpenSolaris仍然可以下载并在虚拟机中运行。它在VirtualBox中运行得最好。 |
![]() |
4
0
我认为在java中没有绑定到“锁定”事件的方法。但你可以看看java.lang.management语言各种锁定信息。例如,有 ThreadMXBean.findDeadlockedThreads() |
![]() |
5
0
|
![]() |
6
0
我建议您实现Lock类的现有实现或实现自己的实现( http://download.oracle.com/javase/tutorial/essential/concurrency/newlocks.html ). 现在可以重写lock and unlock方法。因此,不要使用同步的方法/语句,而是使用此功能,并在锁定/解锁方法中放入日志:) |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |
![]() |
user1700890 · 了解交互式代理Python API中的线程 2 年前 |
![]() |
AntonBoarf · 为什么要将实例变量指定给局部变量? 2 年前 |
![]() |
rhymes · 如何让线程操作相同的java列表 3 年前 |