我注意到在查看Android框架代码时,有很多名为'* Locked()'的方法。 我想知道'锁定'意味着什么以及这些方法反映的特征。
例如,在Activity相关的类中有许多以这种方式命名的方法。
机器人/框架/碱/服务/ JAVA / COM /机器人/服务器/ AM / ActivityStack.java
提前感谢您的帮助! :)
答案 0 :(得分:2)
这意味着该方法是多线程安全的。
答案 1 :(得分:2)
您可以在ActivityManagerService.class中找到如下代码:
synchronized (this) {
dumpActivitiesLocked(fd, pw, args, opti, true, dumpClient, null);
}
或类似的代码:
synchronized (this) {
methodA();
}
methodA() {
dumpActivitiesLocked(fd, pw, args, opti, true, dumpClient, null);
}
所以名为* Locked的方法意味着该方法不是多线程安全的,在ActivityManagerService.class中,你应该使用synchronized(this)来确保多线程安全。
答案 2 :(得分:0)