java php asp.net 安卓 云计算 数据库

关于java线程同步的问题

2015/4/14 20:52:17

假设我要自己实现ID自增,我的代码这样写:

public class ObjClass{

   public static Object obj = new Object();

}

然后我在servlet或jsp或spring的controller里面这样写:

synchronized(ObjClass.obj ){
//1、取出ID

//2、ID+1

//3、执行insert
}

我就是想实现我自己来管理ID的自增,我创建了一个类,给它设置了一个静态变量,这样来保证synchronized用到的是同一个object,以此来锁住只想让一个线程执行的代码。

这里的关键就在于,我的object在不同用户发起请求时,用到的是同一个object吗?


我的意思表达清楚了吗?

先抛开语法问题和效率问题,我想达到的保证ID只能单线程访问的效果能实现吗?如果不能实现,应该如何修改呢?


wangzhiqiang87| 分类:技术分享 |浏览:1232

可以实现的,不过没必要用静态对象,直接用this.class就行了,这样就行了
18751825910 | 楼层:1 楼 |回答时间:2017/2/12 2:50:03

我要回答:

600个汉字以内