下面这段代码的方法前加了个同步,有必要吗?查了一下原来的书籍,也有在前面加同步的,
我认为这实在是多此一举,根本不需要的,大家快来谈谈
public class Conn {
public static synchronized Connection get() throws Exception {
Context ctx = new InitialContext();
Context envctx = (Context) ctx.lookup("java:comp/env");
DataSource ds = (DataSource) envctx.lookup("jdbc/TestDB");
return ds.getConnection();
}
}
莫名其秒的synchronized
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- iteye_14081 2008-11-07 22:27关注
你那样用当然是多余的,全部是局部变量。但是我们一般都不会那样用,频繁查找jndi会极大的降低效率。我们一般可能会如下使用:
[code="java"]
private static Context ctx;
private static Context envctx;
private static DataSource ds;public static synchronized Connection get() throws Exception { if (envctx == null) { ctx = new InitialContext(); } if (envctx == null) { envctx = (Context) ctx.lookup("java:comp/env"); } if (ds == null) { ds = (DataSource) envctx.lookup("jdbc/TestDB"); } return ds.getConnection(); }
[/code]
这时候就有必要了,因为有了共享变量。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 怎么获取下面的: glove_word2id.json和 glove_numpy.npy 这两个文件
- ¥15 js调用html页面需要隐藏某个按钮
- ¥15 ads仿真结果在圆图上是怎么读数的
- ¥20 Cotex M3的调试和程序执行方式是什么样的?
- ¥20 java项目连接sqlserver时报ssl相关错误
- ¥15 一道python难题3
- ¥15 牛顿斯科特系数表表示
- ¥15 arduino 步进电机
- ¥20 程序进入HardFault_Handler
- ¥15 oracle集群安装出bug