您当前的位置:首页 > 计算机 > 编程开发 > Java

Java 看一个多线程环境的问题

时间:12-14来源:作者:点击数:

Java 看一个多线程环境的问题

// vector 为共享变量
static Vector<String> vector = new Vector<String>();
public static void removeIfExist(String str ) {
 int index = 0;
 if ((index = vector.indexOf(str)) > 0 ) {
 vector.remove(index);
 }
}

在线程A 在执行 indexOf 之后,remove 语句之前的这段间隙,线程B 进入 if语句,当线程B 执行删除字符串 str 时,字符串 str 可能已经被线程A 删除,线程B 再执行删除报 ArrayIndexOutOfBoundsException 异常。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐