- 博客(7)
- 收藏
- 关注
原创 红黑树的修正
(2)当前节点是左孩子,以z的祖父节点进行右旋,同时改变父亲节点为黑色,祖父节点为红色。将叔叔节点和父亲节点设置为黑色,祖父节点设置为红色。以父节点是组父节点的左孩子为例,父亲节点是红色。(1)当前节点是右孩子,以z的父节点进行左旋。1.如果叔叔节点是红色。2.如果叔叔节点是黑色。
2024-09-22 12:31:00
411
原创 MQTT服务端bug查找心得
sendto(7, "`\2\0\1", 4, 0, NULL, 0) = 4 【给订阅者发布PUBREL报文】 *感觉这里有问题。可以看到第二次确实收到了订阅者返回的PUBREC,但是并没有响应PUBREL回去,并且在第一次跟踪的时候和前面的对应不上。编写的MQTT服务端,在服务质量等级为2的情况下,只能给订阅者响应一次PUBLISH报文,看了代码始终没找到问题所在。通过查看代码,整体的内容并没有什么问题,在qos质量等级为1时都是正常响应数据包的。非常值得学习的一门课,不学后悔的那种!
2023-07-09 23:02:07
587
1
原创 go语言学习
创建条目的goroutine同时也会设置条目的值,其它goroutine在收到"ready"的广播消息之后立刻会去读取条目的值。ready channel的关闭一定会发生在其它goroutine接收到广播事件之前,因此第一个goroutine对这些变量的写操作是一定发生在这些读操作之前的。如果没有条目的话,需要向map中插入一个没有准备好的条目,当前正在调用的goroutine就需要负责调用慢函数、更新条目以及向其它所有goroutine广播条目已经ready可读的消息了。
2023-06-25 11:58:28
145
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅