码迷,mamicode.com
首页 > 编程语言 > 详细

线程安全不安全的辅助理解,可以拿这个例子自己去运行看看

时间:2015-07-09 19:37:25      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:

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.

线程安全不安全的辅助理解,可以拿这个例子自己去运行看看

标签:

原文地址:http://www.cnblogs.com/wangxiangstudy/p/4633908.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!