标签:
假设是单一数据库源的情况。
通过SELECT FOR UPDATE锁数据。
测试程序。
package javay.test;
class TestGetter extends Thread {
private int id;
public TestGetter(int n) {
id = n;
}
/* *
* @see java.lang.Thread#run()
*/
@Override
public void run() {
String[] keys = {
"key11",
"key12",
"key13"
};
long sn = -2;
try {
sn = JSerialNumber.updateSerialNumber(keys);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Thread" + id + ":sn=" + sn);
}
}
public class TestJN {
public static void main(String[] args) throws Exception {
// String[] keys = {
// "key11",
// "key12",
// "key13"
// };
// // long sn = JSerialNumber.createSerialNumber(keys, JSerialNumber.MIN_VALUE, 1L, JSerialNumber.MAX_VALUE);
// long sn = JSerialNumber.updateSerialNumber(keys);
// System.out.println("TestJN:sn=" + sn);
TestGetter[] gs = new TestGetter[100];
for (int i = 0; i < 100; i ++) {
gs[i] = new TestGetter(i);
}
for (TestGetter g : gs) {
g.start();
}
}
}
下次计划测试一下性能和使用synchronized来实现一下。
标签:
原文地址:http://my.oschina.net/dubenju/blog/511678