发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA

同步的疑惑,jive真的实现同步了么?

    
2004-07-23 19:18
赞助商链接

synchronized关键词一般用于虚拟锁,锁住的不是方法或代码,而是调用这个方法的对象。例如,对于一个构造函数Test(int n),由于变量n的不同,可以构造出不同的Test对象a和b,如果a、b同时访问同步区域,结果只会使synchronized形同虚设!
a和b如果要同时访问同步方法,只有该同步方法为static时才能达到同步的目的,否则,a调用a的方法,b调用b的方法,即使方法声明为同步的,但在不同对象域中它们根本达不到同步的目的。

-------------------
看了上面某个java高手的论述,联想到jive中许多数据库操作类如DbFourm()中的同步方法,不禁汗颜:DbForumfactory就不说了,是单一实例,而DbForum呢,它们真的都实现同不了么?

2004-07-30 12:32

这个观点是对的,Jive中的同步可能是假的,需要具体打开代码研究。

2004-09-24 13:43

大错误啊,你把访问同步数据的代码写在一个单独的类里,并注明该方法为同步的,这样a,b等线程使用该类的同一个实例调用该方法就是同步的了,
如果你使用该类不同实例则该方法还必须标志为static才行,还有很多实现同步的方式,重要的是要理解线程的资源到底是怎么回事,多看看操作系统原理,比到处看那些所谓高手的线程实例好的多。

2004-10-12 13:43

我不明白这是在讨论什么。Java代码同步有什么用?如果没有transaction infrastructure的保护,你Java代码操作数据库的过程中我把数据库修改了,你能怎么办?J2EE应用99.9%的时候根本不需要代码级的同步,你只要把业务对象写成thread unaware的immutable对象就行了。如果J2EE代码还要考虑线程,我们还要应用服务器来干吗呢?

同步或锁     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com