0

在 Android SDK 文档中,标题为“使用 DDMS”的页面在子标题“DDMS 如何与调试器交互”下有以下注释:

Dalvik 的已知调试问题 - 在 Dalvik VM 中调试应用程序的工作方式应该与在其他 VM 中一样。但是,单步跳出同步代码时,“当前行”光标可能会跳到方法的最后一行一步。

在这种情况下,我有两个问题:

a)我也不确定“同步代码”指的是什么?我们是在谈论“调试”代码还是使用“同步”关键字的代码,还是别的什么?我在页面上没有定义,同步是一个通用术语,所以我不清楚限制实际在哪里。

b)根据“b”的答案,我怀疑我的第二个问题是步进“退出”同步代码是什么意思?

感谢您对解释这一点的帮助。

4

2 回答 2

1

我相信它们只是意味着“同步代码”。异步代码可能会在调度程序认为合适的情况下跳转到其他线程,但同步代码应该按顺序进行。他们提到了 Dalvik 调试器的一个已知特性,即当它应该从一行执行到下一行时,它会进行看似莫名其妙的跳转。这个问题实际上让我困惑了一两次......

于 2013-10-27T23:56:41.990 回答
0

synchronized 是您可以在方法或块上使用的关键字。使用线程时很有帮助。

同步方法启用了一种防止线程干扰和内存一致性错误的简单策略:如果一个对象对多个线程可见,则对该对象变量的所有读取或写入都通过同步方法完成。

http://docs.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html

于 2013-10-27T07:33:57.280 回答