美文网首页
2020-06-30----threadlocal--为每一个线

2020-06-30----threadlocal--为每一个线

作者: 李霖神谷 | 来源:发表于2020-06-30 10:27 被阅读0次
/**
 * 模拟多个用户银行转账
 */


public class Test {
    static class bank {
        ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>() {
            @Override
            protected Integer initialValue() {
                return 0;
            }
        };

        public Integer get() {
            return threadLocal.get();
        }

        public void set(Integer money) {
            threadLocal.set(threadLocal.get() + money);

        }
    }

    static class change implements Runnable {
        bank b;

        change(bank b) {
            this.b = b;
        }

        @Override
        public void run() {
            if("客户1".equals(Thread.currentThread().getName())) {
                for (int i = 0; i < 10; i++) {
                    b.set(10);
                    System.out.println(Thread.currentThread().getName() + "账户余额" + b.get());
                }
            }
            if("客户2".equals(Thread.currentThread().getName())) {
                for (int i = 0; i < 20; i++) {
                    b.set(10);
                    System.out.println(Thread.currentThread().getName() + "账户余额" + b.get());
                }
            }
            if("客户3".equals(Thread.currentThread().getName())) {
                for (int i = 0; i < 30; i++) {
                    b.set(10);
                    System.out.println(Thread.currentThread().getName() + "账户余额" + b.get());
                }
            }
            if("客户4".equals(Thread.currentThread().getName())) {
                for (int i = 0; i < 40; i++) {
                    b.set(10);
                    System.out.println(Thread.currentThread().getName() + "账户余额" + b.get());
                }
            }
        }
    }

    public static void main(String[] args) {
        bank b = new bank();
        change c=new change(b);
        Thread T1=new Thread(c,"客户1");
        Thread T2=new Thread(c,"客户2");
        Thread T3=new Thread(c,"客户3");
        T1.start();
        T2.start();
        T3.start();
    }

}

相关文章

  • 2020-06-30----threadlocal--为每一个线

  • 理解ThreadLocal

    ThreadLocal其实可以理解为一个工具类,用来操作线程局部变量。ThreadLocal为每一个使用该变量的线...

  • 梦想家

    在每一个夜晚 梦想家都编织美梦 他以愿望为针 巧思为线 编织出好多 绚烂迷人的画卷 这些画 真实无比 但只有他自己...

  • 《邻家有猫妖》1.雨天邂逅【阴】

    P.S.故事分为【阴线】与【阳线】 【阴线】为古代时间线,【阳线】为现代时间线 冰蓝色的雨宛如跳动的音符,...

  • 《邻家有猫妖》2.祥瑞之白光【阳】

    P.S.故事分为【阴线】与【阳线】 【阴线】为古代时间线,【阳线】为现代时间线 春雷响,万物长。轻云古镇,...

  • 今日的看法:

    今日的看法: 现在,90天线为3018点,30日线为2996点,20日线为3008点,三线靠得非常近,即将向上交叉...

  • 上哪说理去……

    上图是酒鬼酒日线图,图中黄色线为该股当前最重要的多空分界线(支撑线),绿色线为该股的60日线生命线;生命线,生命线...

  • 北方稀土

    绿色为日线级别,紫色为周线级别,蓝色为月线级别。0到3为月线级别下盘整三段走势类型。已完成。3以后经过日线级别上下...

  • 部分线描练习集锦

    线描,是一种态度 ✨线描✨是用线条编织的艺术品,每一个亲手绘制线描的人都对作品珍爱莫名。 ✨线描✨是用时间雕刻的艺...

  • 一分钟教你看懂K线常见形态

    今天我们来讲解一下K线的常见形态: 阳线,收盘价高于开盘价的K线为红色,表示上涨; 阴线,开盘价高于收盘价的K线为...

网友评论

      本文标题:2020-06-30----threadlocal--为每一个线

      本文链接:https://www.haomeiwen.com/subject/fnmtqktx.html