Synchronized关键字简单解析

    synchronized是以排队的方式进行处理多线程访问的,调用前先判断有没有上锁,如果上锁则会等待,在等待过程中会一直尝试获取这把锁,多个线程同时争这把锁。此外,只有共享资源读写访问才需要同步化,不是共享资源则没有同步的必要。


示例:

定义普通类和方法
线程A
线程B                       
测试一                 
测试二

       synchronized取得的锁都是对象锁,而不是把一段代码或者是一个方法当作锁,所以在上面的示例中(测试一所示),哪一个线程先执行带synchronized关键字的方法,那个线程就持有该方法所属对象的锁lock,那么其他线程只能呈等待状态,前提是多个线程访问的是同一个对象!如果多个线程访问多个对象,则Jvm会创建多个锁(测试二所示)


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 3,728评论 0 11
  • 前言:虽然自己平时都在用多线程,也能完成基本的工作需求,但总觉得,还是对线程没有一个系统的概念,所以,查阅了一些资...
    justCode_阅读 726评论 0 9
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,356评论 11 349
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-java.h...
    eddy_wiki阅读 2,232评论 0 14
  • 对于工厂模式,具体上可以分为三类:简单工厂模式工厂方法模式抽象工厂模式 对于上面的三种工厂模式,从上到下逐步抽象,...
    DayDayUpppppp阅读 219评论 0 1