zoukankan      html  css  js  c++  java
  • 线程范围内共享变量

    import java.util.HashMap;
    import java.util.Map;
    import java.util.Random;

    public class ThreadDemo2 {
    static int data = 0; //定义一个数据
    static Map<Thread, Integer> map=new HashMap<Thread, Integer>(); //键值集合
    public static void main(String[] args) {
    for(int i=0;i<2;i++){ //两个线程

    new Thread(new Runnable() {
    @Override
    public void run() {
    //data = (int) Math.random() * 10;
    int data =new Random().nextInt();
    map.put(Thread.currentThread(), data);
    System.out.println(Thread.currentThread().getName() + " data:" + data);
    new a().get();
    new b().get();
    }

    }).start();

    }

    }

    static class a {

    public void get() {
    int data=map.get(Thread.currentThread());
    System.out.println(Thread.currentThread().getName() + " a data:" + data);
    }
    }

    static class b {
    public void get() {
    int data=map.get(Thread.currentThread());
    System.out.println(Thread.currentThread().getName() + " b data:" + data);
    }

    }

    }

    线程范围内共享变量:ThreadLocal

    private static ThreadLocal<Integer> map=new ThreadLocal<Integer>(); //static全局变量

    map.set(data);    //放入数据

    int data=map.get();  //取数据

  • 相关阅读:
    HTML5
    HTML5
    HTML5
    HTML5
    HTML5
    HTML5
    HTML5
    HTML5
    HTML5
    53.Maximum Subarray
  • 原文地址:https://www.cnblogs.com/yugeng/p/7854291.html
Copyright © 2011-2022 走看看