qq_15622913 2016-08-05 03:24 采纳率: 0%
浏览 853
已结题

同步容器为什么会出现不安全情况???

public class Test {
static Vector vector = new Vector();
public static void main(String[] args) throws InterruptedException {
while(true) {
for(int i=0;i vector.add(i);
Thread thread1 = new Thread(){
public void run() {
for(int i=0;i vector.remove(i);
};
};
Thread thread2 = new Thread(){
public void run() {
for(int i=0;i vector.get(i);
};
};
thread1.start();
thread2.start();
while(Thread.activeCount()>10) {

        }
    }
}

}

  • 写回答

1条回答 默认 最新

  • 鱼弦 全栈领域优质创作者 2016-08-05 03:52
    关注

    容器里的数值和地址是变化的,remove或者add之后,你在get会发生位置偏移,获取的会出错,不安全

    评论

报告相同问题?

悬赏问题

  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!
  • ¥15 这个如何解决详细步骤