线程范围内共享数据
来源:互联网 发布:国际淘宝城 编辑:程序博客网 时间:2024/05/29 12:22
package com.sk.thread;import java.util.HashMap;import java.util.Map;import java.util.Random;public class ThreadScopeShareData { private static int data = 0; private static Map<Thread, Integer> threadData = 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() { int data = new Random().nextInt(); System.out.println(Thread.currentThread().getName() + " has put data :" + data); threadData.put(Thread.currentThread(), data); new A().get(); new B().get(); } }).start(); } } static class A{ public void get(){ int data = threadData.get(Thread.currentThread()); System.out.println("A from " + Thread.currentThread().getName() + " get data :" + data); } } static class B{ public void get(){ int data = threadData.get(Thread.currentThread()); System.out.println("B from " + Thread.currentThread().getName() + " get data :" + data); } }}
有时候会抛异常,没搞懂
Thread-0 has put data :-1772161753Thread-1 has put data :-566086542A from Thread-0 get data :-1772161753Exception in thread "Thread-1" B from Thread-0 get data :-1772161753java.lang.NullPointerException at com.sk.thread.ThreadScopeShareData$A.get(ThreadScopeShareData.java:29) at com.sk.thread.ThreadScopeShareData$1.run(ThreadScopeShareData.java:20) at java.lang.Thread.run(Thread.java:745)
阅读全文
0 0
- 线程范围内共享数据
- 线程范围内数据共享
- 线程范围内共享数据
- 线程范围内共享数据
- ThreadLocal线程范围内共享数据
- 同一线程范围内数据共享
- 线程范围内共享数据(一)
- 线程范围内共享数据(二)
- 线程范围内的数据共享
- ThreadLocal实现线程范围内的数据共享
- 多线程_线程范围内数据共享
- 黑马程序员-线程范围内数据共享
- 线程范围内的共享数据 ThreadLocal
- 《黑马程序员》线程范围内的数据共享
- ThreadLocal类实现线程范围内数据共享
- java线程范围内的数据共享
- 【java并发】线程范围内共享数据
- 20160529_线程范围内数据共享
- Android开发之线程与线程池
- I Hate It 树状数组 单点更新 区间最大值
- BZOJ 1007 水平可见直线 几何(半凸包)
- RC4加密
- php 开发调试的常用技巧和工具
- 线程范围内共享数据
- qt中xml的一些补充知识点
- 微信公众号之免登陆快速入门
- maven jar包上传私服
- [未完待续]cURL
- mongodb基础概念
- Yii2 增删改查(CRUD) 整理
- 模糊聚类分析
- 1032. 挖掘机技术哪家强(20)