正文内容加载中...
posted @ 2020-10-30 08:11 温暖如太阳 阅读(145) 评论(0) 推荐(1) 编辑
摘要:SpinWait封装常见旋转逻辑。在单处理器计算机上,始终使用 "生成" 而不是 "繁忙等待",在装有超线程技术的 Intel 处理器的计算机上,这有助于防止硬件线程不足。SpinWait 封装了一种很好的旋转和真正的生成。 SpinWait是一个值类型,这意味着低级别代码可以使用 SpinWait 阅读全文
posted @ 2020-10-23 16:23 温暖如太阳 阅读(373) 评论(0) 推荐(3) 编辑
摘要:队列作为线性表的另一个数据结构,只允许在表的前端进行删除操作,而在表的后端进行插入操作,和栈一样,队列是一种操作受限制的线性表。 先来看下用法: Queue queue = new Queue(); queue.Enqueue(1); queue.Enqueue(2); queue.Enqueue( 阅读全文
posted @ 2020-10-21 08:53 温暖如太阳 阅读(107) 评论(2) 推荐(0) 编辑
摘要:上一篇我们通过数组结构实现了栈结构(准确的说是栈的顺序存储结构),现在我们通过链(单链)存储栈,也就是链栈。 通常对于正向单链表来说,是从头节点开始,在链的尾部附加节点,前一个节点的指针指向附加节点;对于实现栈结构来说是在栈顶(链尾部)插入节点,指针指向上一个节点,所以实现栈结构的链可以说是反向单链 阅读全文
posted @ 2020-10-15 16:45 温暖如太阳 阅读(30) 评论(0) 推荐(0) 编辑
摘要:栈的定义不需要多说,相信大家都非常熟悉,但是,在实际应用中栈的应用我们很少想到会去用栈结构,先上代码看下用法: Stack st = new Stack(); st.Push('A'); st.Push('B'); st.Push('C'); st.Push('D'); foreach (char 阅读全文
posted @ 2020-10-14 14:06 温暖如太阳 阅读(26) 评论(0) 推荐(0) 编辑
摘要:对于双向链表中的节点,都包括一个向前、向后的属性器用于指向前后两个节点,对于引用类型,对象存储的是指向内存片段的内存指针,那么我们可以将其简化看作向前向后的两个指针。 现在我们将引用类型替换为值类型int,将链用数组代替,向后的指针替换为数组的下标,那么此时的链我们称为静态链表(或者说是单向静态链表 阅读全文
posted @ 2020-10-13 13:04 温暖如太阳 阅读(29) 评论(0) 推荐(0) 编辑
摘要:链表的概念以及链表与数组的差异不做过多的叙述,相信大家都耳熟能详,这里以c#语言实现简单的双向链表,作为备用,记录下~ public class Node<T> { private Node<T> prev; private Node<T> next; private T val; public N 阅读全文
posted @ 2020-10-11 19:34 温暖如太阳 阅读(33) 评论(0) 推荐(0) 编辑
摘要:文章开始啰嗦两句,写到这里共21篇关于redis的琐碎知识,没有过多的写编程过程中redis的应用,着重写的是redis命令、客户端、服务器以及生产环境搭建用到的主从、哨兵、集群实现原理,如果你真的能看的进去,相信对你在以后用到redis时会有一定的帮助。 写到现在,redis相关的内容暂时告一段落 阅读全文
posted @ 2020-06-13 23:03 温暖如太阳 阅读(76) 评论(0) 推荐(0) 编辑
摘要:当一个客户端执行SUBSCRIBE命令订阅某个或某些频道时,这个客户端与被订阅频道之间就建立起了一种订阅关系。 Redis将所有频道的订阅关系保存在服务器状态的pubsub_channels字典里面,这个字典的键是某个被订阅的频道,而键的值是一个链表,链表里面记录了所有订阅这个频道的客户端: str 阅读全文
posted @ 2020-06-12 23:11 温暖如太阳 阅读(124) 评论(0) 推荐(0) 编辑
摘要:Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息,它的发布与订阅功能由PUBLISH、SUBSCRIBE、PSUBSCRIBE等命令组成。 通过执行SUBSCRIBE命令,客户端可以订阅一个或多个频道,从而成为这些频道的订阅者:每当有其他客 阅读全文
posted @ 2020-06-11 22:20 温暖如太阳 阅读(70) 评论(0) 推荐(1) 编辑