public static void test (){
int a=1;
for (List b:list){
a++;
}
}
我现在想要把集合改成并行流的方法,会出现线程安全问题,所以想给a加一个关键字但是我直接把a++加上代码块不知道关键字后面的小括号里应该写什么
public static void test (){
int a=1;
for (List b:list){
a++;
}
}
我现在想要把集合改成并行流的方法,会出现线程安全问题,所以想给a加一个关键字但是我直接把a++加上代码块不知道关键字后面的小括号里应该写什么
可以直接在方法声明上加synchronized,但是因为是static方法,这会导致锁住整个类的static方法。如果你只想锁住a++
这一段,那么你需要在类中定义一个static变量,然后synchronized(静态变量)
。