go并发模式之----使用时顺序模式

常见模式之二:使用时顺序模式

定义

顾名思义,起初goroutine不管是怎么个先后顺序,等到要使用的时候,需要按照一定的顺序来,也被称为未来使用模式

使用场景

  • 每个goroutine函数都比较独立,不可通过参数循环复用

  • 任务各自独立,结果组合依赖顺序

示例

Go 复制代码
package main

import (
	"fmt"
	"time"
)

func grepMySQL() <-chan string {
	res := make(chan string)
	go func() {
		time.Sleep(time.Millisecond * 30)
		res <- "grep data from MySQL"
	}()
	return res
}

func grepSQLServer() <-chan string {
	res := make(chan string)
	go func() {
		time.Sleep(time.Millisecond * 10)
		res <- "grep data from SQLServer"
	}()
	return res
}

func grepRedis() <-chan string {
	res := make(chan string)
	go func() {
		time.Sleep(time.Millisecond * 20)
		res <- "grep data from Redis"
	}()
	return res
}

func main() {
	mysqlRes := grepMySQL()
	sqlServerRes := grepSQLServer()
	redisRes := grepRedis()

	// 数据排序规则是 redis -- mysql -- sqlServer
	resArr := []string{
		<-redisRes,
		<-mysqlRes,
		<-sqlServerRes,
	}
	fmt.Println(resArr)
}
相关推荐
独泪了无痕1 小时前
探索Pinyin4j-Java中的拼音转换利器
java·后端
码事漫谈1 小时前
从 Coze 居然要下线了说起
后端
想不到一个好的ID2 小时前
智能体开发
后端
皮皮林5512 小时前
为什么数据库连接池不采用 IO 多路复用?
后端
来让爷抱一个3 小时前
Python 异步里混用同步库,事件循环被卡住的全过程
开发语言·python
IT_陈寒6 小时前
Redis雪崩把我坑惨了,这是5年经验的教训
前端·人工智能·后端
量化分析码农6 小时前
【Python量化多因子实战 06】从因子到持仓:多因子选股实盘工程化落地
后端
心祭丫丫6 小时前
【每天一个 Python 小案例17】Python 实现通讯录
开发语言·人工智能·笔记·python·学习
贾公子6 小时前
检测链路的容量规划——用 Little's Law 算清 QPS、并发与积压
后端·python
kyson_6 小时前
Java 集合框架:从继承体系到数据结构,再到开发选型
后端