栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021.11.11 孤尽训练营D17——集合与并发编程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021.11.11 孤尽训练营D17——集合与并发编程

大纲:T31系统功能树、集合规约、并发处理

T31系统功能树梳理

用例图:关注有哪些角色,角色能够干什么?

功能树:关注有哪些大的功能模块,功能模块能够实现什么能力。

先有用例图,再有功能树。功能树是对用例图的重新聚合。

集合规约

集合是数据结构的载体

 聊聊数据结构与时间复杂度

数据结构:指逻辑意义上的数据组织方式(线性结构、树结构、图结构、哈希结构)及其相应的处理方式(增删改查)

数据结构的优化与运算规模有关,也与调用频率有关

O(1)>O(logN)>O(N)>O(NlogN)>O(N^2)>O(2N)>O(N!)

HashMap的基本概念

table:存储所有节点数据的数组

slot:哈希槽。即table[I]这个位置

bucket:哈希桶。table[i]上所有元素形成的表或树的集合

 

ArrayList的subList结果不可强转成ArrayList

在subList场景中:

  • 在subList场景中,高度注意对父集合元素的增加或删除,均会导致子列表的遍历、增加、删除产生ConcurrentModificationException异常
  • 每次sublist子列表的遍历、增加、删除都会调用checkForComodification()
并发处理
  • 并行:同时处理多任务的能力
  • 并发:交替处理的能力
  •  同一CPU不同时刻交替执行不同的方法,就是并发
  • 不同CPU同一时刻执行不同的方法,就是并行

保证高并发场景下的线程安全,可以从以下四个维度考量:

数据单线程内可见;只读对象;线程安全类;同步与锁机制

java中常用锁实现的方式:

  1. 用并发包中的锁类
  2. 利用同步代码块

AQS透过现象看本质

  • Abstract抽象:包含tryAcquire、tryRelease等5个抽象方法,具体由子类实现;
  • Queued队列:利用队列来管理竞争共享资源的多线程,这个队列是Node节点的引用虚拟实现;
  • Synchronizer同步器:是一个解决多线程同步问题的工具

AQS的本质:解决多线程访问共享资源并发问题的同步管理框架(抢的是int state)

AQS的使用场景:线程同步类、线程池、线程安全Queue/List/Map

线程池的作用包括:

  1. 利用线程池管理并复用线程、控制最大并发数等
  2. 增加对线程的管理,快速排查问题(jstack)
  3. 实现任务线程队列缓存策略和拒绝机制
  4. 实现某些与时间相关的功能,如定时执行、周期执行等
  5. 隔离线程环境

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/490570.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号