
Java多线程
xerjava
这个作者很懒,什么都没留下…
展开
-
ConcurrentHashMap小总结
一、诞生之初ConcurrentHashMap的目标是实现高并发,高吞吐量的hashmap。(引用自:https://www.jianshu.com/p/bf5926b6dcde)二、解决的问题要实现高并发、高吞吐量,要解决两个问题:性能和保证线程安全。为了线程安全,链表/红黑树,是必须得加锁的;(否则导致指针的关系错乱) 为了性能,对共享资源的操作,“一句话”/“一行代码”能完...原创 2020-01-12 17:36:23 · 142 阅读 · 0 评论 -
关于hashmap多线程死锁的总结
1. 前提链表,是基本数据结构; resize方法,操作了线程的共同资源;2. 根本 hashmap死锁主要是一个线程执行transfer过程中,被另一个线程改变了链表元素(共同资源)的指针指向;3. “方法论”多线程不安全的根本原因在于对共同资源的操作。若内存可见,那么会导致对共同资源的执行操作乱序,关系错乱;若内存不可见,那么当最后一个线程将newTable赋...原创 2020-01-03 19:04:15 · 859 阅读 · 0 评论 -
java线程池应用相关技术点总结
1. JSONArray、JSONObject是非线程安全的,这是因为它们的底层分别默认是Arraylist和HashMap,非线程安全;多线程中使用它们的put/add操作等需要同步;2.JSONArray底层默认是Arraylist,Arraylist没有类似ConcurrentHashMap可替换HashMap的线程安全数据结构,一般直接用synchronized关键字同步,锁对象是J...原创 2019-05-29 20:59:31 · 1205 阅读 · 0 评论