HashMap的get方法为空解读
来源:互联网 发布:登录阿里云邮箱登陆 编辑:程序博客网 时间:2024/06/06 03:04
package cn.itcast.heima2;import java.util.HashMap;import java.util.Map;import java.util.Random;public class ThreadScopeShareData {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() {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();}}).start();}}static class A{public void get(){try {Integer data=threadData.get(Thread.currentThread());System.out.println("from "+Thread.currentThread().getName()+" get data:"+data);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
/*
void addEntry(int hash, K key, V value, int bucketIndex) {Entry<K,V> e = table[bucketIndex]; table[bucketIndex] = new Entry<K,V>(hash, key, value, e); if (size++ >= threshold) resize(2 * table.length); }
在hashmap做put操作的时候会调用到以上的方法。现在假如A线程和B线程同时对同一个数组位置调用addEntry,两个线程会同时得到现在的头结点,然后A写入新的头结点之后,B也写入新的头结点,那B的写入操作就会覆盖A的写入操作造成A的写入操作丢失
*/
阅读全文
0 0
- HashMap的get方法为空解读
- JDK源码之解读hashMap 的put和get方法的实现原理
- HashMap的put和get方法原理
- HashMap的put,get方法实现!
- HashMap.put/get方法
- HashMap的源码解读
- HashMap源码的解读
- HashMap里hash方法解读
- Java之HashMap get方法
- HashMap学习笔记:get方法
- HashMap中的get方法注意事项
- Java HashMap的数据结构以及put和get方法
- mysql查找字段空、不为空的方法总结
- postgresql查找字段空、不为空的方法总结
- 判断字符串是否为空的方法
- 判断字符串是否为空的方法
- 数组判断为空的方法改进
- 判断dataset为空的方法
- 基于nodejs和activeMQ的消息推送
- sql语句总结
- 如何用 JavaScript 控制 Arduino?
- 为什么Docker适合初创公司
- C语言——scanf
- HashMap的get方法为空解读
- Eclipse/MyEclipse导出可运行Jar包
- Win10和linux双系统怎么安装?Win10 linux双系统安装教程
- Linux 用户和用户组管理
- 前端面试之算法题
- Android高级之xUtils框架(四):DBUtils的用法
- CSS3伪类:first-child 的学习中引发问题
- linux setfacl 命令基本用法 将文件夹以及文件夹下子文件以及新生文件的权限赋予给用户
- 进入css3动画世界(二)