机器人技术的使用案例
面试第一题必问的 HashMap,挺考验Javaer的基础功底的,别问为啥放在这,因为重要!HashMap具有如下特性:
常见HashMap考点:
2、ConcurrentHashMap ConcurrentHashMap 是多线程模式下常用的并发容器,它的实现在JDK7跟JDK8区别挺大的。 2.1 JDK7
JDK7中的 ConcurrentHashMap 使用 Segment + HashEntry 分段锁实现并发,它的缺点是并发程度是由Segment 数组个数来决定的,并发度一旦初始化无法扩容,扩容的话只是HashEntry的扩容。 对于这样段代码,无论你用多少线程同时调用、怎么调用、什么时候调用都会返回2,这段代码就是线程安全的。
那么我们该怎样写出线程安全的代码呢?要回答这个问题,我们需要知道我们的代码什么时候呆在自己家里使用私有资源,什么时候去公共场所浪使用公共资源,也就是说你需要识别线程的私有资源和共享资源都有哪些,这是解决线程安全问题的核心所在。 因此我们可以看到,这里有两种情况:
本文都是围绕着上述两个核心点来讲解的,现在我们就可以正式的聊聊编程中的线程安全了。 什么是线程安全 我们说一段代码是线程安全的,当且仅当我们在多个线程中同时且多次调用的这段代码都能给出正确的结果,这样的代码我们才说是线程安全代码,Thread Safety,否则就不是线程安全代码,thread-unsafe.。非线程安全的代码其运行结果是由掷骰子决定的。
怎么样,线程安全的定义很简单吧,也就是说你的代码不管是在单个线程还是多个线程中被执行都应该能给出正确的运行结果,这样的代码是不会出现多线程问题的,就像下面这段代码: (编辑:惠州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |