烟台Java培训
达内烟台中心

18300268127

热门课程

Java基础知识笔记 多线程同步的基本原理

  • 时间:2016-09-27
  • 发布:烟台java培训小编
  • 来源:烟台java培训教学部

烟台Java培训小编讯 如果在多个并发线程之间共用资源,则可能就需要进行同步处理。Java虚拟机通过给每个对象加锁的方式实现多线程的同步处理。这里的对象包括类对象和实例对象两种。一个类的静态成员域和静态成员方法隶属于类对象。一个类的非静态成员域和非静态成员方法是不隶属于类对象的,而隶属于类的实例对象。

Java虚拟机为每个对象配备一把锁和一个等候集。对象内部锁住的是一些同步方法和同步语句块。一个方法要成为同步方法只要给该方法加上修饰词synchronized就可以。同步语句块的定义格式如下:

Synchronized(引用类型的表达式)

语句块

其中,关键字synchronized是同步语句块的引导词;位于“()”内的表达式必须是引用类型的表达式,指向某个类对象或实例对象,即指定与该同步语句块相关连的对象;语句块则由一对“{}”及这对大括号所括起来的一系列语句组成。

由于同步处理机制,Java虚拟机在运行同步方法或同步语句块时在时间和空间上需要一些额外开销。虽然利用多线程可以提高资源的利用率,但是如果过于频繁地用同步方法或同步语句块,则会降低多线程的并行度,并可能因为Java虚拟机的额外开销过大而最终降低程序的运行效率。

上一篇:Java基础知识笔记 多线程的同步问题
下一篇:从零开始学 Java - Spring 集成 Memcached 缓存配置

java初中级从业者应该懂这12条

Java笔试题解答,帮你应聘上满意公司!

Java笔试题解答,帮你应聘上满意公司(三)

Java笔试题解答,帮你应聘上满意公司(二)

选择城市和中心
贵州省

广西省

海南省

达内教育

有位老师想和您聊一聊