线程和协程
线程是炒作系统内核调度最小单位,协程是一种用户态的轻量级线程
CSP并发模型
CSP模型提供了一种清晰、简洁的描述并发系统的方式,它被广泛应用于并发编程语言和工具中,如Go语言中的goroutine和通道、Occam语言等。同时,CSP模型也为并发系统的调试和验证提供了理论基础。他们还有两者的差别
1.有缓冲通道:有缓冲通道允许一定数量的消息在发送和接收之间进行暂存。
2.无缓冲通道:无缓冲通道在发送和接收操作之间提供了同步。
依赖管理
最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。go mod命令:
[go mod 使用 - 掘金 (juejin.cn)](https://juejin.cn/post/6844903798658301960)
课后实践一部分完成,GitHub上有些人做出来了
1.我们把相应的读取topic和post的API实现都改成如上的Get()和Set()方法
func (*Topic) QueryTopicById(userid int64) *Topic {
topic, _ := topicIndexRWMap.Get(id)
return topic
}
func (*Post) QueryPostsByParentId(parentId int64) []*Post {
Listpost, _ := postIndexRWMap.Get(parentId)
return Listpost
}
2.Cotroller层中的NewPage()实现如下。
func NewPage(newPage *service.PageInfo) *PageData {
err := service.AddNewPage(newPage)
if err != nil {
return &PageData{
Code: -1,
Msg: err.Error(),
}
}
return &PageData{
Code: 0,
Msg: "success",
Data: newPageInfo,
}
}
3.service的AddNewPage()中
func NewPage(newPageInfo *PageInfo) error {
userid, err := repository.NewTopicDaoInstance().AddNewTopic(newPageInfo.Topic)
if err != nil {
return err
}
err = repository.NewPostDaoInstance().NewPost(newPageInfo.PostList, userid)
if err != nil {
return err
}
return nil
}
基本的代码就已经实现了,我也有些想不出来感谢各位大佬观看有什么好的思路可以建议下