Java并发编程实战整理
Rayleigh.
这个作者很懒,什么都没留下…
展开
-
Java并发编程实战(四)
HashMap、LinkedHashMap、TreeMap、Hashtable、HashSet和ConcurrentHashMap区别 HashMap() 1.结构:A.基于AbstracMap类、哈希表Map接口 B.”链表散列”的数据结构,数组和链表结合体 C.JDK1.8增加红黑树部分,复杂度从O(n)降到O(logn),链表长度超过8,转为红黑树 2.键和值特点:A.允许出现null值和null键(最多只允许一条记录的键为null,允许多条记录的值为null) B.此类不保证映射顺序,即为无序储存C原创 2020-10-06 22:20:47 · 90 阅读 · 0 评论 -
Java并发编程实战(三)
第十章 避免活跃性危险 死锁(获得需要的资源前不放弃已获得的资源,造成阻塞,此资源可以是锁) 1.数据库系统可检测死锁以及从死锁恢复:当它监测到一组事物发生死锁(通过表示等待关系的有向图中搜索),将选择一个牺牲者并放弃这个事物(牺牲者释放所持有资源),程序可重新执行被强行中止的事物(竞争资源的食物都已完成时) 2.JVM解决死锁问题:A.当一组Java线程发生死锁,这些线程永远不能再使用 B.可能造成: 应用程序停止,子系统停止,性能降低 C.恢复应用唯一办法:中止并重启它 死锁类型 1.锁顺序死锁:A原创 2020-10-06 22:15:47 · 156 阅读 · 0 评论 -
Java并发编程实战(二)
第六章 任务执行 在线程中执行任务(找出清晰地任务边界以及明确的任务执行策略) 1.串行地执行任务:主线程在接受连接和处理间交替运行 2.显式地为任务创建线程:为每个请求创建新的线程A.任务处理过程从主线程分离B.可以并行处理C.处理代码必须线程安全,会有多个任务并发调用处理代码 3.创建线程的缺点:A.线程生命周期开销大 B.内存和CPU消耗大 C.线程最大数量存在限制 Executor框架(强大的异步功能将任务的提交和执行解耦,基于生产者-消费者模式) Executor仅有一个方法:e.execute原创 2020-08-29 14:25:19 · 152 阅读 · 0 评论 -
Java并发编程实战(一)
第二章 线程安全性原创 2020-08-19 10:44:12 · 114 阅读 · 0 评论