《零基础Go语言算法实战》【题目 2-26】goroutine 的执行效率问题

news/2025/1/16 4:48:10/

《零基础Go语言算法实战》

【题目 2-26】goroutine 的执行效率问题

请说出下面的代码存在什么问题。

package main

import "fmt"

type Func func(string) string

func exec(name string, vs ...Func) string {

 ch := make(chan string)

 fn := func(i int) {

 ch <- vs[i](name)

 }

 for i, _ := range vs {

 go fn(i)

 }

 return <-ch

}

func main() {

 ret := exec("test", func(n string) string {

 return n + "func1"

 }, func(n string) string {

 return n + "func2"

 }, func(n string) string {

 return n + "func3"

 }, func(n string) string {

 return n + "func4"

 })

 fmt.Println(ret)

}

【解答】

依据 4 个 goroutine 的启动后执行效率,很可能输出 testfunc4,但其他的 testfunc1 也可能

先执行,exec() 函数只会返回一条信息。

bebe7e141ed84ec6a70afee25a972cca.png

 


http://www.ppmy.cn/news/1563515.html

相关文章

【网络云SRE运维开发】2025第3周-每日【2025/01/14】小测-【第13章ospf路由协议】理论和实操

文章目录 选择题&#xff08;10道&#xff09;理论题&#xff08;5道&#xff09;实操题&#xff08;5道&#xff09; 【网络云SRE运维开发】2025第3周-每日【2025/01/14】小测-【第12章ospf路由协议】理论和实操 选择题&#xff08;10道&#xff09; 在OSPF协议中&#xff0c…

计算机网络开发基础实训室设备

计算机网络综合实训室解决方案&#xff0c;是面向高校网络相关专业开展教学实训的综合实训基地解决方案。教学实训系统采用 B&#xff0f;S架构&#xff0c;通过公有云教学实训平台在线学习模式&#xff0c;轻松实现网络系统建设与运维技术的教学和学习场景的灵活性。系统采用实…

多模态论文笔记——CLIP

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍这几年AIGC火爆的隐藏功臣&#xff0c;多模态模型&#xff1a;CLIP。 文章目录 CLIP&#xff08;Contrastive Language-Image Pre-training&#xff09…

【Vue】let、const、var的区别、适用场景

let、const、var&#xff0c;有哪些区别&#xff0c;适用场景 var 特点&#xff1a; var 是 JavaScript 中最传统的变量声明方式。具有函数作用域&#xff0c;即在函数内声明的 var 变量&#xff0c;在整个函数内都可以访问。变量提升&#xff1a;使用 var 声明的变量会被提升…

flutter VoidCallBack ValueChange<T> 的函数定义

在 Flutter 中&#xff0c;VoidCallback 和 ValueChanged<T> 是两种常用的回调函数类型&#xff0c;它们通常用于处理事件或传递数据。下面是它们的详细定义及使用方式。 1. VoidCallback 函数类型 VoidCallback 是一个没有参数也没有返回值的回调函数类型。它通常用于…

Maven项目中pom文件中的dependencyManagement,dependencies,dependency有什么区别?

Maven项目中pom文件中的dependencyManagement&#xff0c;dependencies&#xff0c;dependency有什么区别&#xff1f;_pom dependencymanagement-CSDN博客

MERN全栈脚手架(MongoDB、Express、React、Node)与Yeoman详解

MERN 全栈脚手架是一种用于快速构建基于 MongoDB、Express、React 和 Node.js 的全栈应用的框架或模板。它帮助开发者快速启动项目&#xff0c;减少了从零开始配置的时间。以下是关于 MERN 全栈脚手架的详细解析。 一、MERN 技术栈简介 MongoDB: 文档型数据库&#xff0c;用于…

Ubuntu Server挂载AWS S3成一个本地文件夹

2023年&#xff0c;AWS出了个mountpoint的工具&#xff1a; https://github.com/awslabs/mountpoint-s3 如下是另外一种方式&#xff0c;通过s3fs-fuse 这个工具 sudo apt-get install automake autotools-dev \fuse g git libcurl4-gnutls-dev libfuse-dev \libssl-dev libx…