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

关于jive中lock是怎么回事?

2004-07-17 19:40
赞助商链接

关于jive中有好多的关于lock的使用不太清楚是怎么回事?
例如在以下的例子中:
1、public abstract class ForumFactory 中有一个
private static Object initLock = new Object();
public static ForumFactory getInstance(Authorization authorization) {
//If no valid authorization passed in, return null.
if (authorization == null) {
return null;
}
if (factory == null) {
synchronized(initLock) {
if (factory == null) {
String classNameProp = PropertyManager.getProperty("ForumFactory.className");
if (classNameProp != null) {
className = classNameProp;
}
try {
//Load the class and create an instance.
Class c = Class.forName(className);
factory = (ForumFactory)c.newInstance();
}
catch (Exception e) {
System.err.println("Failed to load ForumFactory class "
+ className + ". Jive cannot function normally.");
e.printStackTrace();
return null;
}
}
}
}
2、在public class PropertyManager 中
private static Object managerLock = new Object();
public static String getProperty(String name) {
if (manager == null) {
synchronized(managerLock) {
if (manager == null) {
manager = new PropertyManager(propsName);
}
}
}
return manager.getProp(name);
}
我不太清楚,那位仁兄可以帮解释一下可以吗?

2004-07-18 10:00

因为Jsp+JavaBeans其实是多线程环境,通过加锁,保证某个时刻只有一个线程运行,特别是资源属性文件的获得等,这些内存中只要一份就可以。

还有有关事务锁,保证数据库记录唯一性,这些比较复杂,后来EJB将事务机制纳入容器来完成,无需开发者来编写相关程序。

赞助商链接

赞助商链接

返回顶部

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