黑马程序员技术交流社区

标题: Vector线程安全问题 [打印本页]

作者: 唐增友    时间: 2012-10-15 15:41
标题: Vector线程安全问题
  1. import java.util.Vector;

  2. public class Theader {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {

  7.                 /*Runnable r =new Test();
  8.                 new Thread(r).start();
  9.                 new Thread(r).start();*/
  10.                
  11.                 Runnable r2 =new Test();
  12.                 new Thread(r2).start();
  13.                 new Thread(r2).start();
  14.         }

  15. }

  16. class Test2 implements  Runnable{
  17.         String s="123456789";
  18.         Vector<String> v=new Vector<String>();
  19.        
  20.         public Test2(){
  21.                 for(char c : s.toCharArray()){
  22.                         v.add(String.valueOf(c));
  23.                 }
  24.        
  25.         }
  26.        
  27.         @Override
  28.         public void run() {
  29.                         while(!v.isEmpty()){
  30.                                 System.out.println(Thread.currentThread().getName()+":"+v.get(0));
  31.                                 v.remove(0);
  32.                                
  33.                         }
  34.         }
  35.        
  36. }
复制代码
Thread-0:1
Thread-0:2
Thread-0:3
Thread-0:4
Thread-0:5
Thread-0:6
Thread-0:7
Thread-0:8
Thread-0:9
Thread-1:1
Exception in thread "Thread-1" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at java.util.ArrayList.RangeCheck(ArrayList.java:547)
        at java.util.ArrayList.remove(ArrayList.java:387)
        at com.heimait.day20121015.Test.run(Theader2.java:22)
        at java.lang.Thread.run(Thread.java:619)

不是说 vector 线程安全吗?
vector 线程安全 怎么理解??




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2