《零基础Go语言算法实战》【题目 2-29】通道缓冲问题

news/2025/1/17 15:19:09/

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

【题目 2-29】通道缓冲问题

以下的代码迭代会有什么问题?

package main

import "sync"

type threadSafeMap struct {

 ages map[string]int

 sync.Mutex

}

func (set *threadSafeMap) Iteration() <-chan interface{} {

 ch := make(chan interface{})

 go func() {

 set.Lock()

 for elem := range set.ages {

 ch <- elem

 }

 close(ch)

 set.Unlock()

 }()

 return ch

}

【解答】

默认情况下使用 make() 函数初始化的通道是无缓冲的,也就是在迭代写时会阻塞。

36d5e219c92242bea6751908b5b5b403.png

 


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

相关文章

记录一次微信小程序使用云能力开发的过程

对于开发微信小程序云开发不知从何起的同学们&#xff0c;可以当作一次参考。虽说官方有文档&#xff0c;有模板示例&#xff0c;但是这些都是片段或者完整的结果展示。对于初学或者开发经验较少的同学们&#xff0c;可能不知先从那里入手进行第一步的开发。下面解析下构建微信…

Apache搭建https服务器

Apache搭建https服务器 REF: 使用OpenSSL自建一个HTTPS服务

elrond32

elrond32 一、查壳 无壳&#xff0c;32位 二、IDA分析 1.main 2.sub_8048538 要知道v2值&#xff0c;即unk_8048760 可以看出有效值之间间隔3个0&#xff0c;所以写代码&#xff0c;得出真正的值 char [15, 0, 0, 0, 31, 0, 0, 0, 4, 0, 0, 0, 9, …

【 PID 算法 】PID 算法基础

一、简介 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&#xff09;、Differential&#xff08;微分&#xff09;的缩写。也就是说&#xff0c;PID算法是结合这三种环节在一起的。粘一下百度百科中的东西吧。 顾名思义&#xff0c;…

npm、yarn、pnpm包安装器差异性对比

特性npmyarnpnpm发布年份2010 年发布2016 年发布2017 年发布安装速度较慢&#xff08;旧版本&#xff09;&#xff0c;但自 npm 5 后有所改善较快&#xff0c;尤其是在缓存方面极快&#xff0c;使用硬链接和全局缓存来提高速度包管理模式扁平化依赖&#xff0c;可能会发生重复依…

Jenkins与不同阶段测试的完美结合

软件测试是确保软件质量的关键环节。在这一过程中&#xff0c;集成工具如Jenkins无疑是我们的得力帮手。通过Jenkins&#xff0c;开发和测试团队可以实现持续集成和持续交付&#xff0c;最大限度地缩短从开发到发布的周期。而且&#xff0c;Jenkins能够与自动化测试工具无缝集成…

python密码学列置换加密解密程序

1.置换密码 置换密码&#xff08;Permutation Cipher)又叫换位密码&#xff08;Transposi-tionCipher)&#xff0c;它根据一定的规则重新排列明文&#xff0c;以便打破明文的结构特性。置换密码的特点是保持明文的所有字符不变&#xff0c;只是利用置换打乱了明文字符的位置和次…

【C++】size_t全面解析与深入拓展

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;一、什么是size_t&#xff1f;为什么需要size_t&#xff1f; &#x1f4af;二、size_t的特性与用途1. size_t是无符号类型示例&#xff1a; 2. size_t的跨平台适应性示例对…