摘要: 前言 抛开死锁不谈,只聊性能问题,尽管锁总能粗暴的满足同步需求,但一旦存在竞争关系,意味着一定会有线程被阻塞,竞争越激烈,被阻塞的线程越多,上下文切换次数越多,调度成本越大,显然在高并发的场景下会损害性能。在高并发高性能且要求线程安全的述求下,无锁构造(非阻塞构造)闪亮登场。 如果你对同步&阻塞不是 阅读全文
posted @ 2022-11-15 09:09 xiaolipro 阅读(6705) 评论(9) 推荐(56) 编辑
摘要: 回顾上节:线程基础篇传送门 我们对多线程已经有了基础的认知,知道其工作原理和一些基本维护操作,并且引出了线程安全的概念。这一篇我们要讲的主题--同步,是解决线程安全问题的一个手段之一,线程安全是整个多线程的核心挑战,几乎所有的手段都是在与他对抗!整个系列将通篇围绕线程安全开展。 如果你对同步已经有了 阅读全文
posted @ 2022-11-13 11:06 xiaolipro 阅读(2017) 评论(1) 推荐(5) 编辑
摘要: 线程基础 视频已经发布到B站 如果你已经掌握了线程基础,请跳往下一篇:同步基础传送门 参考文章: 《Threading in C# 》(Joseph Albahari)https://www.albahari.com/threading/ 《Threading in C# 》中文翻译(GKarch 阅读全文
posted @ 2022-11-13 11:01 xiaolipro 阅读(4794) 评论(4) 推荐(27) 编辑
摘要: 最短路 dijkstra 时间复杂度:N^2 堆优化版的就是优化找最小距离点 时间复杂度:M*logN 特点:不允许存在负权边 算法原理:用最短距离去更新n个点的距离(实际有效更新的只有连边) bellman-ford 时间复杂度:K*M (K是步数,M是边数) 能处理负权边,可以处理负环,可以判断 阅读全文
posted @ 2021-03-27 22:10 xiaolipro 阅读(157) 评论(0) 推荐(0) 编辑
摘要: Hash(散列) 并查集 Trie树 堆 映射版本堆,Dijkstra需要用到 堆排序 链表 栈与队列 阅读全文
posted @ 2021-03-16 18:30 xiaolipro 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2021-03-15 21:07 xiaolipro 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2021-03-13 19:57 xiaolipro 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2021-03-13 19:34 xiaolipro 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 图解 前缀和 二维前缀和 差分 二维差分 阅读全文
posted @ 2021-03-13 12:33 xiaolipro 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 1,新建发布服务器遇到此服务器上未安装复制组件 先执行以下sql use mastergoselect @@servername;select serverproperty('servername') 结果一致就执行B方案,否则运行以下sql if serverproperty('servernam 阅读全文
posted @ 2021-02-25 23:30 xiaolipro 阅读(123) 评论(0) 推荐(0) 编辑