【java performance】不要在循环中调用synchronized(同步)方法

方法的同步需要消耗相当大的资料,在一个循环中调用它绝对不是一个好主意。

例子:

import java.util.Vector;

public class SYN {

public synchronized void method (Object o) {

}

private void test () {

for (int i = 0; i < vector.size(); i++) {

method (vector.elementAt(i));// violation

}

}

private Vector vector = new Vector (5, 5);

}

更正:

不要在循环体中调用同步方法,如果必须同步的话,推荐以下方式:

import java.util.Vector;

public class SYN {

public void method (Object o) {

}

private void test () {

synchronized{//在一个同步块中执行非同步方法

for (int i = 0; i < vector.size(); i++) {

method(vector.elementAt(i));

}

}

}

private Vector vector = new Vector (5, 5);

}

自己战胜自己是最可贵的胜利。

【java performance】不要在循环中调用synchronized(同步)方法

相关文章:

你感兴趣的文章:

标签云: