synchronized关键字

来源:互联网 发布:centos ftp服务开启 编辑:程序博客网 时间:2024/05/16 04:44

synchronized关键字用来修饰方法,就是让方法同步执行,避免多个线程同时执行。

java语法中:“静态方法”和“非静态方法”有相似但是不同的同步规则:

 

1.静态方法:同一个类中所有被synchronized修饰的静态方法,它们在类范围内是同步的。也就是说同一时间内只能有一个线程可以调用它们中的任意一个方法。如果有第2个线程调用其中的任何一个方法,那么这个线程将挂起,直到前面的线程执行同步静态方法后,才会被再次唤醒,执行相应的静态方法。

(静态同步方法是以类为单位进行同步控制的,对于同一个类中所有静态同步方法,在同一时间内,只运行有一个线程执行其中的一个;其余想要进入这些方法的线程都必须被挂起等待)

2.非静态方法:对于同一个类中的所有被synchronized修饰的非静态方法,它们在同一个对象上是同步的。也就是说,对于这个类的某个对象,当一个线程调用某个同步方法的时候,如果有第二个线程在”同一个对象上“调用某个同步的非静态方法,那么这个线程将被挂起,直到前面的线程执行完毕同步非静态方法后,才会再次被唤醒,执行相应的非静态方法。

原创粉丝点击