线程安全类

当一个类已经很好的同步以保护它的数据时,这个类就称为“线程安全的”。
即使是线程安全类,也应该特别小心,因为操作的线程是间仍然不一定安全。

import  java.util.Collections;
import  java.util.LinkedList;
import  java.util.List;

public   class  TestThread {
    
public   static   void  main(String[] args) {
        
final  NameList nl  =   new  NameList();
        nl.add(
" aaa " );
        
class  NameDropper  extends  Thread {
            
public   void  run() {
                String name 
=  nl.removeFirst();
                System.out.println(name);
            }
        }
        Thread t1 
=   new  NameDropper();
        Thread t2 
=   new  NameDropper();
        t1.start();
        t2.start();
    }
}

class  NameList {
    
private  List nameList  =  Collections.synchronizedList( new  LinkedList());

    
public   void  add(String name) {
        nameList.add(name);
    }
    
public  String removeFirst() {// removeFirst方法必须同步
         if  (nameList.size()  >   0 ) {
            
try  {
                Thread.sleep(
100 );
            } 
catch  (InterruptedException e) {
                e.printStackTrace();
            }
            
return  (String) nameList.remove( 0 );
        } 
else  {
            
return   null ;
        }
    }
}



http://lavasoft.blog.51cto.com/62575/99155

你可能感兴趣的:(线程安全类)