关于线程同步的问题(方法同步和代码块同步)

package com.bootdo.wang;

/**
 * 线程同步:
 * 1.方法同步
 * 2.代码块同步
 */

public class ThreadSynchronization {

    class Bank {
        private int account = 10;

        public int getAccount() {
            return account;
        }


        /**
         * 同步方法
         *
         * @param money
         */
        public synchronized void saveAccount(int money) {
            account += money;
        }


        /**
         * 同步代码块
         *
         * @param money
         */
        public void saveAccount1(int money) {
            synchronized (this) {
                account += money;
            }
        }
    }


    class NewThred implements Runnable {

        private Bank bank;

        public NewThred(Bank bank) {
            this.bank = bank;
        }

        @Override
        public void run() {
            for (int i = 0; i < 10; i++) {
                bank.saveAccount1(1);
//                bank.seveAccount(1);
                System.out.println(Thread.currentThread().getName() + "-->第" + i + "次,账户余额:" + bank.getAccount());

            }

        }
    }


    public void useThread() {
        Bank bank = new Bank();
        NewThred newThred = new NewThred(bank);

        System.out.println("线程1:");

        Thread thread1 = new Thread(newThred);
        thread1.start();

        System.out.println("线程2:");

        Thread thread2 = new Thread(newThred);
        thread2.start();

    }

    public static void main(String[] args) {
        ThreadSynchronization threadSynchronization = new ThreadSynchronization();
        threadSynchronization.useThread();
    }


}

输出:

线程1:
线程2:
Thread-0-->第0次,账户余额:11
Thread-1-->第0次,账户余额:13
Thread-0-->第1次,账户余额:13
Thread-1-->第1次,账户余额:14
Thread-0-->第2次,账户余额:15
Thread-1-->第2次,账户余额:16
Thread-0-->第3次,账户余额:17
Thread-1-->第3次,账户余额:18
Thread-0-->第4次,账户余额:19
Thread-1-->第4次,账户余额:20
Thread-0-->第5次,账户余额:21
Thread-1-->第5次,账户余额:22
Thread-0-->第6次,账户余额:23
Thread-1-->第6次,账户余额:24
Thread-0-->第7次,账户余额:25
Thread-1-->第7次,账户余额:26
Thread-0-->第8次,账户余额:27
Thread-1-->第8次,账户余额:28
Thread-0-->第9次,账户余额:29
Thread-1-->第9次,账户余额:30

猜你喜欢

转载自blog.csdn.net/w893433055/article/details/85394085