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

2020-06-30  本文已影响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();
    }

}
上一篇 下一篇

猜你喜欢

热点阅读