递归火山软件开发平台

标题: 双向列表、环形列表、协程环境如何应用? [打印本页]

作者: hs999xl    时间: 2024-8-26 10:06
标题: 双向列表、环形列表、协程环境如何应用?
求大佬科普下:
火山服务器的双向列表、环形列表、协程环境。
我看了官方例程,也了解了这些类,但不知道在实际开发中,这些能做什么事情?
(, 下载次数: 29)

作者: 创世魂    时间: 2024-8-26 10:42
在Go语言中,双向列表(Doubly Linked List)、环形列表(Circular Buffer/Queue)和协程(Goroutine)都是非常有用的结构和特性,它们在不同的场景下可以发挥重要的作用。下面我将分别解释这些概念以及它们在实际开发中的用途。
双向列表 (Doubly Linked List)
双向列表是一种数据结构,其中每个元素包含一个指向前一个元素的指针和一个指向后一个元素的指针。这种结构使得可以从两个方向遍历列表,并且方便地插入或删除元素。
用途:
环形列表 / 环形缓冲区 (Circular Buffer / Queue)
环形缓冲区是一个固定大小的数组,它的头部和尾部相连形成一个环。当缓冲区填满时,新的元素会覆盖最旧的元素。
用途:
协程 (Goroutine)
协程是Go语言的一个重要特性,它允许你编写并发程序而不需要显式地管理线程。协程比传统的线程更轻量级,由Go运行时调度。
用途:


作者: hs999xl    时间: 2024-8-26 10:53
创世魂 发表于 2024-8-26 10:42
在Go语言中,双向列表(Doubly Linked List)、环形列表(Circular Buffer/Queue)和协程(Goroutine)都是 ...

写的太专业了,眼睛看到了,大脑可能没懂。
作者: 山梦    时间: 2024-8-26 10:58
PC有没有双向列表。那天我就是想要这种结果,我以为”标准列表模板类“能实现。哈希表是单向对不?
作者: hs999xl    时间: 2024-8-26 11:07
服务器基本类中,有个协程环境,那个是做什么的?
作者: Xelloss0618    时间: 2024-8-26 14:04
山梦 发表于 2024-8-26 10:58
PC有没有双向列表。那天我就是想要这种结果,我以为”标准列表模板类“能实现。哈希表是单向对不? ...

PC的列表(链表)是std::list,本身就是双向的,单向链表是std::forward_list,火山没有封装。
PC的哈希表是std::map(没有用到哈希算法,火山里算是翻译错误),只能从小到大排序,这种结构不存在方向,无序哈希表(真用了哈希算法)也不存在方向。
作者: 山梦    时间: 2024-8-26 15:42
Xelloss0618 发表于 2024-8-26 14:04
PC的列表(链表)是std::list,本身就是双向的,单向链表是std::forward_list,火山没有封装。
PC的哈希表 ...

X大,我真的是小学生,小小学生。没有例子,用不来。
作者: 创世魂    时间: 2024-8-26 15:54
hs999xl 发表于 2024-8-26 10:53
写的太专业了,眼睛看到了,大脑可能没懂。

双向列表就是  可以从前面插入成员,也可以从后面插入成员。使用更方便。

环形的就是,成员数是固定的,当成员满了,如果有新的加入,那么旧的就会被覆盖。
作者: 创世魂    时间: 2024-8-26 15:58
山梦 发表于 2024-8-26 15:42
X大,我真的是小学生,小小学生。没有例子,用不来。

文本标准列表类    x大说的就是这个,定义变量直接干就行了。
作者: Inverse    时间: 2024-8-26 21:44
配上图就好理解了

作者: 459943578    时间: 2024-8-26 22:08
Inverse 发表于 2024-8-26 21:44
配上图就好理解了

环形用到了,统计一个时间段的数据很好用。
作者: 459943578    时间: 2024-8-26 22:09
双向列表用来做任意类型的队列,非常好用。
作者: 459943578    时间: 2024-8-26 22:13
协程就是视窗的线程,协程环境我的理解就是用来通知其它任务是运行还是停止的
作者: hs999xl    时间: 2024-8-27 11:02
459943578 发表于 2024-8-26 22:13
协程就是视窗的线程,协程环境我的理解就是用来通知其它任务是运行还是停止的 ...

我也是这样理解的。




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4