package com.system.util;
import com.common.Constants;
import com.util.Cache;
/**
* 创建同步对象锁
*
* @author jqlin
*
*/
public class SyncObject {
/**唯一对象*/
private Object obj;
public SyncObject(Object obj) {
this.obj = obj;
}
/**
* 获取同步对象锁
*
* @param cache 缓存对象
* @param preCacheKey 唯一标识缓存的ID
* @param obj 唯一对象
* @return
*/
public static synchronized SyncObject getSyncObject(Cache cache, String preCacheKey, Object obj) {
SyncObject sysObject = cache.get(preCacheKey + obj);
if (sysObject == null) {
sysObject = new SyncObject(obj);
cache.put(preCacheKey + obj, sysObject);
}
return sysObject;
}
public Object getObj() {
return obj;
}
public void setObj(Object obj) {
this.obj = obj;
}
public static void main(String[] args) {
Cache cache = null;
String userId = null;
SyncObject syncOrder = SyncObject.getSyncObject(cache, Constants.DQ_REDEMP_CACHE, userId);
synchronized (syncOrder) {
//todo
}
}
}