zoukankan      html  css  js  c++  java
  • 线程安全不安全的辅助理解,可以拿这个例子自己去运行看看

    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.

  • 相关阅读:
    kvm添加磁盘
    python学习1
    ubuntu使sudo不需要密码
    磁盘挂载
    github/gitlab添加多个ssh key
    生成SSH key
    git 删除追踪状态
    angular2+ 初理解
    本地项目上传到GitHub
    new Date()之参数传递
  • 原文地址:https://www.cnblogs.com/wangxiangstudy/p/4633908.html
Copyright © 2011-2022 走看看