码迷,mamicode.com
首页 > 编程语言 > 详细

Java生成流水号(1)

时间:2015-09-27 18:56:51      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

假设是单一数据库源的情况。

通过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来实现一下。

Java生成流水号(1)

标签:

原文地址:http://my.oschina.net/dubenju/blog/511678

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!