Java多线程初学者指南(10):使用Synchronized关键字同步类方法(二)

2014-11-23 23:56:53 · 作者: · 浏览: 1
码如下:

在子类方法中加上synchronized关键字


class Parent
{
public synchronized void method() { }
}
class Child extends Parent
{
public synchronized void method() { }
}


在子类方法中调用父类的同步方法

class Parent
{
public synchronized void method() { }
}
class Child extends Parent
{
public void method() { super.method(); }
}


2. 在定义接口方法时不能使用synchronized关键字。

3. 构造方法不能使用synchronized关键字,但可以使用下节要讨论的synchronized块来进行同步。

4. synchronized可以自由放置。

在前面的例子中使用都是将synchronized关键字放在方法的返回类型前面。但这并不是synchronized可放置唯一位置。在非静态方法中,synchronized还可以放在方法定义的最前面,在静态方法中,synchronized可以放在static的前面,代码如下:

public synchronized void method();
synchronized public void method();
public static synchronized void method();
public synchronized static void method();
synchronized public static void method();


但要注意,synchronized不能放在方法返回类型的后面,如下面的代码是错误的:

public void synchronized method();
public static void synchronized method();


synchronized关键字只能用来同步方法,不能用来同步