如果我调用一个同步的对象,我可以访问该对象内的对象,就好像它们是同步的吗?或者我只能访问数据类型?同步会影响对象成员吗?
1
A
回答
0
可能,但只有小心。如果您始终锁定同一个对象,则可以执行此操作。
很有可能你必须锁定每个对象。
1
尽管您的目标是保护数据,但同步提供了围绕代码块的独占性,而不是一块数据。代码在同步块之外(或者在使用不同对象的块中),可能会改变您尝试保护的数据,即使这不是您想要的。
任何正确的锁定策略都必须确保可能相互干扰的代码块保持相同的锁定。这包括可能会干扰在另一个线程中运行的另一个副本的代码。
synchronized (myObject) {
// sensitive code
}
在方法级锁定只是用于锁定this
指针的方法的主体中的简写。 (或静态方法的class
对象)。
0
对每个对象的synchronize
的能力在Java中是一个常见的烦恼,因为它很混乱。
基本上,它意味着每个对象都可以是一个锁。而已。因此,当您锁定父对象时,对象的成员没有特殊效果,并且将哪个特定对象用作锁。如果所有线程都锁定在同一个对象上,则只有其中一个线程将运行/访问同步块中的任何代码。如果其中一些不这样做,那么就没有这种保证。
如果要确保在任何给定时间只有一个线程正在访问成员,请确保访问该成员的所有线程在访问同一对象之前都锁定(或“同步”)。只要你这样做,锁使用哪个对象并不重要。
相关问题
- 1. 同步类对象会阻塞整个类(及其成员)
- 2. SQLAlchemy:2会话对象的影响?
- 3. 同步访问ASP.NET会话的成员
- 4. 静态方法会影响php对象的大小吗?
- 5. 对象锁实例成员来同步对它的访问
- 6. NSClassFromString会影响性能吗?
- 7. Thread.Sleep会影响ThreadPool吗?
- 8. SO_RCVTIMEO会影响accept()吗?
- 9. Thread.Sleep会影响ThreadState吗?
- 10. 原型链 - 一个对象上的设置键会影响同级对象?
- 11. 更改一个对象应该会影响同一类的其他对象
- 12. 同步对象与未同步对象
- 13. FileStream.ReadAsync有时会同步完成吗?
- 14. 长而复杂的模板成员方法会影响性能吗?
- 15. DOCTYPE对CSS有影响吗?
- 16. 合并复制客户端上的时间不同步会影响吗?
- 17. 异步/等待会影响tcp服务器的性能吗?
- 18. 改变WritableRaster对象影响BufferedImage对象
- 19. 成员类对象有冲突吗?
- 20. 类成员函数编号的影响
- 21. 匿名内部类不会影响外部类成员
- 22. 对象同步
- 23. 同步对象
- 24. 对象同步
- 25. 同步对象
- 26. 在Java中向抽象基类添加成员的影响
- 27. 同步锁定结果集对象吗?
- 28. “同步访问线程”与“同步共享对象”相反吗?
- 29. 虚拟对类模板成员使用的影响
- 30. 如何异步编程影响对象的属性
你的问题非常模糊 - 你说的“调用同步对象”是什么意思?如果你想给出一个特定的代码示例,这真的很有帮助。 – 2013-05-04 07:37:53