ThreadLocal

import java.util.Arrays;

 public class TestCalc{
 
      static String[] names = new String[] { "E", "B", "C", "B", "E", "C"};  
      static int index = 0;  
  
      public static void main(String[] args) {  
    
          for (int i = 0; i < names.length; i++) {  
              Thread t = new Thread() {  
                  @Override  
                  public void run() {  
                      //Created thread from every search
                      ThreadLocalUtils.DATA.set(this.getName());  
                      // 用SQLSearch将数据查询的逻辑部分实现代码分离  
                      System.out.println(new SQLSearch().run());  
                  }  
    
              };  
              t.setName(names[index++]);  
              t.start();  
    
          }  
      }


      public static class SQLSearch implements MyRunnable {  
    
      public String run() {  
          //返回查询结果  
          return search(ThreadLocalUtils.DATA.get());  
      }  
    
      // 模拟查询  
      private String search(String name) {  
          String result=null;  
          // Sql  
          if (name.equals("B")) {  
              result = (name + "185 TALL");  
          }  
          if (name.equals("C")) {  
              result = (name + "160 TALL");  
          }  
          if (name.equals("E")) {  
              result = (name + "180 TALL");  
          }  
          return result;  
    
      }  
    } 

    public interface MyRunnable {  
      
        public String run();  
    } 

    public static  class ThreadLocalUtils {  
        public static final ThreadLocal<String> DATA = new ThreadLocal<String>();  
    }
 }   
 


 
  
  
 
 

 

 

posted on 2016-03-31 16:44  rojas  阅读(190)  评论(0编辑  收藏  举报