c语言sscanf函数的用法是什么
239
2022-09-25
同步容器真的是安全的吗?
有人认为Vector中的方法都进行了同步处理,那么一定就是线程安全的,事实上这可不一定。看下面这段代码:
public class Test { static Vector
在我机器上运行的结果:
正如大家所看到的,这段代码报错了:数组下标越界。
也许有朋友会问:Vector是线程安全的,为什么还会报这个错?很简单,对于Vector,虽然能保证每一个时刻只能有一个线程访问它,但是不排除这种可能:
当某个线程在某个时刻执行这句时:
for(int i=0;i 假若此时vector的size方法返回的是10,i的值为9 然后另外一个线程执行了这句: for(int i=0;i 将下标为9的元素删除了。 那么通过get方法访问下标为9的元素肯定就会出问题了。 因此为了保证线程安全,必须在方法调用端做额外的同步措施,如下面所示: public class Test { static Vector
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~