- 博客(8)
- 收藏
- 关注
原创 C#实现一个AVL树用于10w内的排行榜统计
为什么用AVL树,对于频繁查找,并且支持范围查找的性能会相对较高.即使是频繁的插入和修改,对于统计10w以内的人也完全足够使用了.更高的量级建议直接走Redis。} // 用户唯一ID。// 排序规则:Count高的在前,Count相同SubmitTime早的在前,UserId保证唯一性。} // 积分。} // 提交时间。/// Awake后再插入,避免存过多以及引用导致的问题。/// 持久化的话就只存这个。
2025-08-17 22:51:39
571
原创 协程/异步代码
在编程中,协程(Coroutine)是一种用于并发编程的控制结构,它允许函数在执行过程中暂停,并在稍后恢复执行。协程在暂停时会保存其执行状态和数据,以便在恢复时能够继续执行。
2025-03-12 03:17:41
1539
原创 epoll
epoll是 Linux 内核提供的一种高效的 I/O 事件通知机制,用于处理大量并发连接。与传统的 I/O 多路复用机制(如select和poll)相比,epoll在性能和可扩展性方面具有显著优势。epoll。
2025-03-12 02:50:55
410
原创 ConcurrentDictionary、ConcurrentQueue等线程安全类的探索
在 .NET 中,和是线程安全的集合类,它们通过内部机制来确保多线程环境下的安全访问和高性能。以下是它们如何保证线程安全以及为什么性能高的详细解释,并对比了使用配合Dictionary和Queue的差异。
2025-03-09 01:21:27
372
原创 用C++实现红黑树(允许重复值)
/ 情况2:叔叔节点是黑色,且当前节点是右子节点。// 情况3:叔叔节点是黑色,且当前节点是左子节点。// 情况2:叔叔节点是黑色,且当前节点是左子节点。// 情况3:叔叔节点是黑色,且当前节点是右子节点。// 父节点是祖父节点的右子节点。// 情况1:叔叔节点是红色。// 情况1:叔叔节点是红色。// 父节点是祖父节点的左子节点。// 确保根节点始终是黑色。
2025-03-08 22:59:02
1529
原创 TaskCompletionSource<T> 的特殊死锁情况
如果上下文是单线程同步上下文(如UI线程或ASP.NET请求上下文),在这种上下文中,如果你在主线程中等待任务完成,同时在同一线程上设置结果,这就会导致死锁。因为主线程被阻塞,等待任务完成,而任务的延续任务需要在主线程上执行。2.在其中一个线程5 await tcs时,然后另外的异步代码中在一些不稳定复现的情况下在某一次 执行 SetResult()方法刚好在5上执行也会导致死锁情况. 原理和1是一样的。会死锁的情况取决于是否在单线程同步上下文中等待操作完成,并且延续任务需要在同一个线程上执行。
2025-03-01 23:40:56
197
原创 Skynet Linux环境配置-基于Linux上开发
/ 更新软件包//用于安装编译和构建软件所需的基本工具集或者// 有的版本apt上找不到gcc//提供了GNU readline库接口//自动配置工具,用于生成可以从源代码构建的软件的配置脚本。//通常用于准备源代码包以便编译安装。//自动化构建工具,通常用于从源代码编译和链接程序// GNU make的Guile扩展,它允许在make脚本中使用Guile语言。这个软件包主要用于扩展make的功能,使其能够使用Guile语言进行更复杂的操作和脚本编写。
2025-02-16 02:06:43
847
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅