摘要: 1.并发容器 容器4大类List,Map,Set,Queue 但不是所有的容器都是线程安全的 2.非线程安全的容器如何变为线程安全的容器 把非线程安全的容器封装在对象内部,控制好访问路径就可以了 3.ArrayList 变为线程安全的的列表 SafeArrayList SafeArrayList<T 阅读全文
posted @ 2021-07-06 17:53 SpecialSpeculator 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 1.校对逻辑 2.单线程里循环查询订单,派送单,执行对账 while(存在未对账订单){ // 查询未对账订单 pos = getPOrders(); // 查询派送单 dos = getDOrders(); // 执行对账操作 diff = check(pos, dos); // 差异写入差异库 阅读全文
posted @ 2021-07-06 17:08 SpecialSpeculator 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 1.StampedLock 读多写少的场景,StampedLock性能比读写锁更好 2.StampedLock 支持的三种锁模式 读写锁,2种模式,读锁,写锁 stampedLock是3种模式,写锁,悲观锁,乐观锁 写锁,悲观锁的语意和ReadWriteLock的写锁,读锁,语意类似,允许多个线程同 阅读全文
posted @ 2021-07-06 16:18 SpecialSpeculator 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 1.其他工具类 用途:分场景优化性能,提升易用性 2.并发场景,读多写少 使用缓存,缓存元数据,缓存基础数据 缓存的数据一定是读多写少 3.读写锁ReadWriteLock 非常容易使用,性能很好 1.允许多个线程同时读共享变量 2.只允许一个线程写共享变量 3.如果一个写线程正在执行写操作,此时禁 阅读全文
posted @ 2021-07-06 14:37 SpecialSpeculator 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 1.Semaphore 信号量,类比红绿灯 编程中,线程能不能执行,看信号量是否允许 2.信号量模型 计数器+等待队列+三个方法 计数器和等待队列对外是透明的,只能通过提供的三个方法(init,down,up)来访问它们 init()设置计数器的初始值 down()计数器值减1,计数器当前值小于0, 阅读全文
posted @ 2021-07-06 14:03 SpecialSpeculator 阅读(80) 评论(0) 推荐(0) 编辑