首页 > 编程语言 > 详细

Java生成流水号(1)

时间:2015-09-27 18:54:49      阅读:287      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!