zoukankan      html  css  js  c++  java
  • 学习多线程1---ThreadLocal模拟

    ThreadLocal实际上是一个Map结构

    Key是Thread名字,value是封装在每个Thread里的变量

    很多框架都使用ThreadLocal ,主要用于不被线程共享的变量上面

    模拟代码如下

    package com.test;
    
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Random;
    
    public class ThreadScopeSimulate {
        private static Map<Thread,Integer> myMap = new HashMap<Thread,Integer>();
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    	  for(int i = 0;i < 2;i++){
            new Thread(new Runnable(){
    
    			@Override
    			public void run() {
    				// TODO Auto-generated method stub
    				int data = new Random().nextInt();
    				System.out.println(Thread.currentThread().getName()
    				+" data "+data);
    				myMap.put(Thread.currentThread(), data);
    				new A().get();
    				new B().get();
    			}
            	
            }).start();
    	  }
    	}
    	static class A{
    		public int get(){
    			int data = myMap.get(Thread.currentThread());
    			System.out.println("A from"+Thread.currentThread().getName()
    					+" data "+data);
    			return data;
    			
    		}
    	}
    	static class B{
    		public int get(){
    			int data = myMap.get(Thread.currentThread());
    			System.out.println("B from"+Thread.currentThread().getName()
    					+" data "+data);
    			return data;
    			
    		}	
    	}
    }
    

      

  • 相关阅读:
    redis-cluster配置
    centeros7安装docker
    redis-sentinel主从复制高可用
    redis的主从同步
    redis安全(加入密码)
    redis的持久化相关操纵
    maria(mysql)的主从复制
    nginx+uwsgi+virtualenv+supervisor部署项目
    scrapy_redis之官网列子domz
    豆瓣模拟登录(双层html)
  • 原文地址:https://www.cnblogs.com/hzmbbbb/p/4280260.html
Copyright © 2011-2022 走看看