美文网首页
1.3 synchronize关键字: 对非静态方法加锁

1.3 synchronize关键字: 对非静态方法加锁

作者: 殊胜因缘_Chris | 来源:发表于2019-03-02 22:00 被阅读0次
    /**
     * This is description.
     * synchronize关键字: 对非静态方法加锁.
     * @author Chris Lee
     * @date 2019/2/28 23:46
     */
    public class Demo {
        private int count = 10;
    
        /**
         * synchronized: 此时相当于用synchronized(this)将fun(){...}中所有代码加锁.
         */
        public synchronized void fun(int i) {
            count--;
            System.out.println("第" + (i + 1) + "打印输出: " + Thread.currentThread().getName() + ", count = " + count);
        }
    
        public static void main(String[] args){
            Demo demo = new Demo();
            for (int i = 0; i < 5; i++) {
                demo.fun(i);
            }
            /*
                第1打印输出: main, count = 9
                第2打印输出: main, count = 8
                第3打印输出: main, count = 7
                第4打印输出: main, count = 6
                第5打印输出: main, count = 5
             */
        }
    }
    
    说明:
    • 本篇文章如有不正确或待改进的地方, 欢迎批评和指正, 大家一同进步, 谢谢!
    • 世上有4样东西可以让世界变得更美好, 它们是: 代码(Code), 诗(Poem), 音乐(Music), 爱(Love). 如有兴趣了解更多, 欢迎光顾"我的文集"相关文章.
    资料:
    1. 学习视频: https://www.bilibili.com/video/av11076511/?p=1
    2. 参考代码: https://github.com/EduMoral/edu/tree/master/concurrent/src/yxxy
    3. 我的代码: https://github.com/ChrisLeejing/learn_concurrency.git

    相关文章

      网友评论

          本文标题:1.3 synchronize关键字: 对非静态方法加锁

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