您的位置:首页 > 编程语言 > Java开发

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

2014-02-21 16:11 218 查看
方法的同步需要消耗相当大的资料,在一个循环中调用它绝对不是一个好主意。



例子:

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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐