乐观锁

package com.juanpi.goods.service;

import org.apache.commons.lang3.math.NumberUtils;

public class Retry3Times {

	public static void main(String[] args) {

	}

	public int test(String key, Object data) {
		int localeVersion = NumberUtils.INTEGER_MINUS_ONE;

		int remoteVersion = getRemoteVersion(key);
		if (localeVersion == remoteVersion) {
			return updateOperate(key, data);
		}

		int i = 0;
		while (++i < 3) {
			localeVersion = getRemoteVersion(key);
			int tempVersion = updateOperate(key, data);
			if (localeVersion + 1 == tempVersion) {
				return remoteVersion;
			}
			rollback(key, data);
		}

		return NumberUtils.INTEGER_MINUS_ONE;

	}

	public int getRemoteVersion(String key) {
		return 0;
	}

	public int updateOperate(String key, Object data) {
		return NumberUtils.INTEGER_ONE;
	}

	public int rollback(String key, Object data) {
		return NumberUtils.INTEGER_ZERO;
	}
}

你可能感兴趣的:(乐观锁)