什么是Dalvik VM的同步代码?

时间:2013-10-27 06:19:02

标签: android debugging sdk ddms

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

  

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

在这方面,我有两个问题:

a)我不确定“同步代码”是指什么?我们是在讨论使用“synchronized”关键字“调试”代码或代码,还是其他什么?我在页面上缺少定义,并且synchronized是一个通用术语,所以我不清楚限制实际上在哪里。

b)根据“b”的回答,我怀疑我的第二个问题是什么踩出“同步代码”意味着什么?

感谢您提供解释的帮助。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

  

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

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