[英]Thread Synchronization in Java(Android) Legacy Code
我有一个旧版应用程序要维护,有一些类似的代码
public class MyApplication extends Application {
...(some code)
Class cls = MyApplication.class;
__monitor_enter(cls);
...(some code)
__monitor_exit(cls);
...(some code)
}
据我所知,这里正在进行某种线程同步,但是如此处所述
此AST元素表示一个“监视”语句。 它可以是以下两种类型之一:
__monitor_enter(lock)
__monitor_exit(lock)
此类声明不是合法的Java构造。 与try-finally块结合使用,它们用于表示称为同步块的非常高级的结构。
当前,monitors语句是只读元素,不能由用户创建。
在某些地方__monitor_enter
给出了错误,而在某些地方没有出错,这可能是原因所在,如果有人理解了代码的风格,请告诉您这种声明的目的是什么,以及我如何改进它。
编辑:
错误是
对于类型MyApplication,未定义方法__monitor_exit(Object)
和
未定义类型MyApplication的方法__monitor_enter(Object)
问候。
使用同步块:
public class MyApplication extends Application {
...(some code)
synchronized (MyApplication.class) {
...(some code)
}
...(some code)
}
对于监视器,似乎它只能将特定类型的类/对象用作锁定对象。 检查它可以正常编译的情况,并查看在那里使用了哪种类型的对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.