码迷,mamicode.com
首页 > 移动开发 > 详细

Android-Java-synchronized同步锁机制&利与弊

时间:2019-01-06 14:29:30      阅读:367      评论:0      收藏:0      [点我收藏+]

标签:定义   class   代码块   alt   需要   机制   分享图片   解决   .class   

synchronized同步锁机制

技术分享图片

 

定义锁??的方式一:

package android.java.thread09;

public class Test implements Runnable {
    
    @Override
    public void run() {

        /**
         * 定义一个锁??,这个锁是Jav内部要去判断用的,属于隐士的 看不到的
         * Java内部的实现属于 ??锁机制
         */
        Object lock = new Object();

        synchronized (lock) {
            /**
             * 多线程操作共享数据
             * 重复执行引发的问题
             * ...........
             */
        }

    }
}

 

定义锁??的方式二:

package android.java.thread09;

public class Test2 implements Runnable {

    @Override
    public void run() {

        /** Test2.class 认为是一个锁??,这个锁是Jav内部要去判断用的,属于隐士的 看不到的
         *  Java内部的实现属于 ??锁机制
         */
        synchronized (Test2.class) {
            /**
             * 多线程操作共享数据
             * 重复执行引发的问题
             * ...........
             */
        }

    }
}

 

定义锁??的方式 ......    还有很多方式

 


 

 

举例:高铁上的厕所:

1.厕所门显示无人,高铁上有五个人,这五个人谁先进去(代表谁被CPU执行了)

 

     synchronized (厕所门显示无人 ??) {
            // 上厕所任务
            ........
        }

2.厕所门显示有人,高铁上有五个人,进去了一个人,进去的这个人一旦进去就会把门??上,其他四个人在门外等着,进不去

     synchronized (厕所门显示有人 ??) {
            // 上厕所任务
            ........
        }

3.进去的哪个人,上完厕所了,锁就打开了,厕所门上显示无人,  其他四个人谁先进去(主要看CPU执行权在哪个线程上执行)

     synchronized (厕所门显示无人 ??) {
            // 上厕所任务
            ........
        }
        上完厕所了,锁就打开??,厕所门上显示无人

 

技术分享图片

 


 

 

synchronized同步代码块利与弊

1.好处是:synchronized同步代码,解决安全问题。

2.坏处是:每次都需要判断synchronized(的??是否 锁住),有点耗性能;

总结:1.完全问题解决,   2.有点耗性能,  当然选择1.完全问题解决

 

Android-Java-synchronized同步锁机制&利与弊

标签:定义   class   代码块   alt   需要   机制   分享图片   解决   .class   

原文地址:https://www.cnblogs.com/android-deli/p/10228298.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!