java匿名类和同步和“这个”
发布时间:2020-12-14 05:09:04 所属栏目:Java 来源:网络整理
导读:我正在处理一个竞争条件,我相信在我的JAVA GUI中. 我有一些方法在匿名类中创建一个“匿名方法”,如下所示: synchronized foo(){ someMethod(new TimerTask() { public synchronized run() { //stuff } };} QUESTION:是否在TimerTask对象或foo所在的类上运
我正在处理一个竞争条件,我相信在我的JAVA GUI中.
我有一些方法在匿名类中创建一个“匿名方法”,如下所示: synchronized foo() { someMethod(new TimerTask() { public synchronized run() { //stuff } }; } QUESTION:是否在TimerTask对象或foo所在的类上运行方法同步? QUESTION2:如果我在run()声明中摆脱了“synchronized”,而在run()正文中有一个synchronized(this){}块,那么“this”是指TimerTask对象或者对象是包含foo()的方法的一个实例? 请帮我在这里 谢谢, 解决方法
运行方法在TimerTask本身上同步.同步
instance methods are always synchronized on
this 对象. (Class方法在Class对象上同步.)
如果要在其对象上进行同步,则需要qualify the public void run() { synchronized(Bar.this) { ... } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |