线程安全不安全的辅助理解,可以拿这个例子自己去运行看看
2015-07-09 18:11
363 查看
public class Test { //LinkedList线程不安全 //List<Integer>list=new LinkedList<Integer>(); //Vector线程安全 List<Integer> list=new Vector<Integer>(); public static void main(String[] args) { Test test=new Test(); ThreadA tA = test.new ThreadA(); ThreadB tB = test.new ThreadB(); tA.start(); tB.start(); try{ tA.join(); tB.join(); }catch(InterruptedException e){ e.printStackTrace(); } System.out.println("list size:"+test.list.size()); } class ThreadA extends Thread{ @Override public void run(){ super.run(); for(int i=0;i<100;i++){ list.add(i); } } } class ThreadB extends Thread{ @Override public void run(){ super.run(); for(int i=0;i<100;i++){ list.add(i); } } } }
在list是Linkedlist的时候,无论怎么运行结果都不会是200,单如果要是用Vector实例出来的list结果总会是200.
相关文章推荐
- Windows批处理中获取日期和时间
- listview android:cacheColorHint,android:listSelector属性作用
- 【小练习】“表单”制作及答案
- sql优化查询
- Android Binder
- ubuntu git钩子笔记
- springmvc 页面乱码
- ListView控件
- 23种设计模式彩图
- bootstrap 动态添加验证项和取消验证项
- [leedcode 34] Search for a Range
- 百度定位sdk Couldn't load locSDK4 from loader dalvik
- 大素数高效算法判断
- 美国硅谷
- 寻找失踪的整数数组(Find the missing integer)
- Android:关于声明文件中android:process属性说明
- 树的定义及术语
- iOS property 用法
- 加载并获取jar包中某个类的某个方法
- 霍夫曼编码/译码器