zoukankan      html  css  js  c++  java
  • 多线程(二)ThreadLocal

     ThreadLocal

    public class Demo extends Thread{
    
        static int i = 0;
        
        public Integer getNext(){
            
            i++;
            return i;
        }
        
        
        @Override
        public void run() {
            for (int i = 0; i < 3; i++) {
                System.out.println(currentThread().getName() + "---" + getNext());
            }
        }
        
        
        public static void main(String[] args) {
            Demo demo = new Demo();
            Thread thread = new Thread(demo);
            thread.setName("线程1");
            Thread thread1 = new Thread(demo);
            thread1.setName("线程2");
            Thread thread2 = new Thread(demo);
            thread2.setName("线程3");
            thread.start();
            thread1.start();
            thread2.start();
        }
    
    }

    ThreadLocal将代码修改一下~

    package test;
    
    public class Demo extends Thread{
    
        static Integer i;
        
        
        ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>();
        
        public Integer getNext(){
            //从ThreadLocal中获取
            i = threadLocal.get();
            if (i == null) {
                i = 0;
            }
            i++;
            //存入ThreadLocal中
            threadLocal.set(i);
            return i;
        }
        
        
        @Override
        public void run() {
            for (int i = 0; i < 3; i++) {
                System.out.println(currentThread().getName() + "---" + getNext());
            }
        }
        
        
        public static void main(String[] args) {
            Demo demo = new Demo();
            Thread thread = new Thread(demo);
            thread.setName("线程1");
            Thread thread1 = new Thread(demo);
            thread1.setName("线程2");
            Thread thread2 = new Thread(demo);
            thread2.setName("线程3");
            thread.start();
            thread1.start();
            thread2.start();
        }
    
    }

      

  • 相关阅读:
    jmeter对数据库进行简单的压测
    数据库语言sql
    (二)变量的概念与分类
    (一)Java关键字与标识符
    socket之远程执行命令
    python文件操作
    UDP基础server与client
    TCP基础server与client
    Python 之 杂谈(迭代器iter)、偏函数
    python 之解决socket 粘包
  • 原文地址:https://www.cnblogs.com/deepSleeping/p/10259139.html
Copyright © 2011-2022 走看看