当前位置: 首页 > news >正文

go语言:两协程并发交替打印数字和字母(代码逐行注释)

要求:

  • 并发两协程交替打印数字和字母。
  • 一个协程打印数字,一个协程打印字母。

输出:

  • 12AB34CD56EF78GH910IJ1112KL1314MN1516OP1718QR1920ST2122UV2324WX2526YZ2728

思路:

  • 两个 channel 控制两个协程进行交替打印。
  • sync.WaitGroup 控制主协程等待子协程完成。

完整代码:

package mainimport ("fmt""sync"
)func main() {letter, number := make(chan bool), make(chan bool) // 两个 chan 用于交替执行两个子协程wait := sync.WaitGroup{}                           // 设置计数器,用于控制主协程堵塞等待子协程执行go func() {i := 1for {select {case <-number: // 堵塞,等待number有值后向下执行fmt.Print(i) // 打印两个连续的数字i++fmt.Print(i)i++letter <- true // 赋值后,打印字母协程收到后继续执行}}}()wait.Add(1) // 计数器加1go func() {i := 'A'for {select {case <-letter: // 堵塞,等待letter有值向下执行if i >= 'Z' { // 子协程结束wait.Done() // 计数器设置为0,退出主线程return}fmt.Print(string(i)) // 打印两个连续的字母i++fmt.Print(string(i))i++number <- true // 赋值后,打印数字协程收到后继续执行}}}()fmt.Println("程序先执行此句输出。")number <- true // 赋值后,打印数字协程收到后继续执行wait.Wait()    // 堵塞主协程,直到计数器为0fmt.Println("\n程序最后执行此句输出。")
}

相关文章:

go语言:两协程并发交替打印数字和字母(代码逐行注释)

要求&#xff1a; 并发两协程交替打印数字和字母。一个协程打印数字&#xff0c;一个协程打印字母。 输出&#xff1a; 12AB34CD56EF78GH910IJ1112KL1314MN1516OP1718QR1920ST2122UV2324WX2526YZ2728 思路&#xff1a; 两个 channel 控制两个协程进行交替打印。sync.WaitG…...

TWM论文阅读笔记

这是ICLR2023的一篇world model论文&#xff0c;用transformer来做世界模型的sequence prediction。文章贡献是transformer-based world model&#xff08;不同于以往的如transdreamer的world model&#xff0c;本文的transformer-based world model在inference 的时候可以丢掉…...

探索ChatTTS项目:高效的文字转语音解决方案

文章目录 &#x1f4d6; 介绍 &#x1f4d6;&#x1f4d2; ChatTTS &#x1f4d2;&#x1f4dd; 项目介绍&#x1f4dd; 项目亮点&#x1f4dd; UI &#x1f388; 项目地址 &#x1f388; &#x1f4d6; 介绍 &#x1f4d6; 在AI技术迅速发展的今天&#xff0c;文本到语音&…...

[Django学习]Q对象实现多字段模糊搜索

一、应用场景 假设我们现在有一个客房系统,前端界面上展示出来了所有客房的所有信息。用户通过客房的价格、面积、人数等对客房进行模糊搜索&#xff0c;如检索出价格在50到100元之间的客房&#xff0c;同时检索面积在20平方米到30平方米之间的客房&#xff0c;此时后端可以借助…...

transdreamer 论文阅读笔记

这篇文章是对dreamer系列的改进&#xff0c;是一篇world model 的论文改进点在于&#xff0c;dreamer用的是循环神经网络&#xff0c;本文想把它改成transformer&#xff0c;并且希望能利用transformer实现并行训练。改成transformer的话有个地方要改掉&#xff0c;dreamer用ht…...

AIGC技术的发展现状与未来趋势探讨

AIGC技术的发展现状与未来趋势探讨 随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;AI生成内容&#xff08;AI-Generated Content&#xff0c;AIGC&#xff09;成为了一项颠覆性的技术&#xff0c;它能够自动生成文本、图像、音频和视频等多种内容。本文将…...

Postman Postman接口测试工具使用简介

Postman这个接口测试工具的使用做个简单的介绍&#xff0c;仅供参考。 插件安装 1&#xff09;下载并安装chrome浏览器 2&#xff09;如下 软件使用说明...

Java开发笔记Ⅱ(Jsoup爬虫)

Jsoup 爬虫 Java 也能写爬虫&#xff01;&#xff01;&#xff01; Jsoup重要对象如下&#xff1a; Document&#xff1a;文档对象&#xff0c;每个html页面都是一个Document对象 Element&#xff1a;元素对象&#xff0c;一个Document对象里有多个Element对象 Node&#…...

一五三、MAC 安装MongoDB可视化工具连接

若没有安装brew包管理工具&#xff0c;在命令行输入安装命令 /bin/bash -c “$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)”上面步骤安装完成后&#xff0c;开始安装MongoDB&#xff0c;输入安装命令&#xff1a; brew tap mongodb/brewbrew u…...

ULTRAINTERACT 数据集与 EURUS 模型:推动开源大型语言模型在推理领域的新进展

在人工智能的浪潮中&#xff0c;大型语言模型&#xff08;LLMs&#xff09;已经成为推动自然语言处理技术发展的关键力量。它们在理解、生成语言以及执行复杂任务方面展现出了巨大的潜力。然而&#xff0c;尽管在特定领域内取得了显著进展&#xff0c;现有的开源LLMs在处理多样…...

【leetcode刷题】面试经典150题 , 27. 移除元素

leetcode刷题 面试经典150 27. 移除元素 难度&#xff1a;简单 文章目录 一、题目内容二、自己实现代码2.1 方法一&#xff1a;直接硬找2.1.1 实现思路2.1.2 实现代码2.1.3 结果分析 2.2 方法二&#xff1a;排序整体删除再补充2.1.1 实现思路2.1.2 实现代码2.1.3 结果分析 三、…...

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇PTH哈希PTT票据PTK密匙Kerberoast攻击点TGTNTLM爆破

红队内网攻防渗透 1. 内网横向移动1.1 首要知识点1.2 PTH1.2.1 利用思路第1种:利用直接的Hash传递1.2.1.1、Mimikatz1.2.2 利用思路第2种:利用hash转成ptt传递1.2.3 利用思路第3种:利用hash进行暴力猜解明文1.2.4 利用思路第4种:修改注册表重启进行获取明文1.3 PTT1.3.1、漏…...

springBoot不同module之间互相依赖

在 Spring Boot 多模块项目中&#xff0c;不同模块之间的依赖通常是通过 Maven 或 Gradle 来管理的。以下是一个示例结构和如何设置这些依赖的示例。 项目结构 假设我们有一个多模块的 Spring Boot 项目&#xff0c;结构如下&#xff1a; my-springboot-project │ ├── p…...

[modern c++] 类型萃取 type_traits

前言&#xff1a; #include <type_traits> type_traits 又叫类型萃取&#xff0c;是一个在编译阶段用于进行 类型判断/类型变更 的库&#xff0c;在c11中引入。因为其工作阶段是在编译阶段&#xff0c;因此被大量应用在模板编程中&#xff0c;同时也可以结合 constexpr…...

函数模板和类模板的区别

函数模板和类模板在C中都是重要的泛型编程工具&#xff0c;但它们之间存在一些显著的区别。以下是它们之间的主要区别&#xff1a; 实例化方式&#xff1a; 函数模板&#xff1a;隐式实例化。当函数模板被调用时&#xff0c;编译器会根据传递给它的参数类型自动推断出模板参数…...

ChatGPT 提示词技巧一本速通

目录 一、基本术语 二、提示词设计的基本原则 三、书写技巧 2.1 赋予角色 2.2 使用分隔符 2.2 结构化输出 2.3 指定步骤 2.4 提供示例 2.5 指定长度 2.6 使用或引用参考文本 2.7 提示模型进行自我判断 2.8 思考问题的解决过程 ​编辑 2.10 询问是否有遗漏 2.11 …...

【windows解压】解压文件名乱码

windows解压&#xff0c;文件名乱码但内容正常。 我也不知道什么时候设置出的问题。。。换了解压工具也没用&#xff0c;后来是这样解决的。 目录 1.环境和工具 2.打开【控制面板】 3.点击【时钟和区域】 4.选择【区域】 5.【管理】中【更改系统区域设置】 6.选择并确定…...

使用Flink CDC实时监控MySQL数据库变更

在现代数据架构中&#xff0c;实时数据处理变得越来越重要。Flink CDC&#xff08;Change Data Capture&#xff09;是一种强大的工具&#xff0c;可以帮助我们实时捕获数据库的变更&#xff0c;并进行处理。本文将介绍如何使用Flink CDC从MySQL数据库中读取变更数据&#xff0…...

学生课程信息管理系统

摘 要 目前&#xff0c;随着科学经济的不断发展&#xff0c;高校规模不断扩大&#xff0c;所招收的学生人数越来越 多&#xff1b;所开设的课程也越来越多。随之而来的是高校需要管理更多的事务。对于日益增 长的学生相关专业的课程也在不断增多&#xff0c;高校对其管理具有一…...

如何看待鸿蒙HarmonyOS?

鸿蒙系统&#xff0c;自2019年8月9日诞生就一直处于舆论风口浪尖上的系统&#xff0c;从最开始的“套壳”OpenHarmony安卓的说法&#xff0c;到去年的不再兼容安卓的NEXT版本的技术预览版发布&#xff0c;对于鸿蒙到底是什么&#xff0c;以及鸿蒙的应用开发的讨论从来没停止过。…...

AI报告文档审核助力本地化升级:IACheck如何支撑食品加工行业数据安全与质量协同发展

在食品加工行业不断强化质量控制与数据安全要求的背景之下&#xff0c;“本地部署”正逐渐成为企业数字化转型中的关键路径之一&#xff0c;尤其是在涉及检测数据与质量报告的场景中&#xff0c;数据不仅需要具备高度准确性&#xff0c;还必须满足合规与安全要求&#xff0c;因…...

模拟前端电路设计:高精度信号处理核心技术解析

1. 模拟前端电路设计概述 模拟前端电路是连接真实世界与数字系统的关键桥梁&#xff0c;它负责将传感器采集的微弱模拟信号进行调理、放大和转换&#xff0c;使其能够被后续的数字系统正确处理。作为一名从事硬件设计十余年的工程师&#xff0c;我处理过从医疗设备到工业控制的…...

3步打造高效右键菜单:让Windows操作提速50%

3步打造高效右键菜单&#xff1a;让Windows操作提速50% 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否也曾在右键点击文件时&#xff0c;面对长达20个选项…...

3步实现跨平台日历同步:从需求到落地

3步实现跨平台日历同步&#xff1a;从需求到落地 【免费下载链接】ics iCalendar (ics) file generator for node.js 项目地址: https://gitcode.com/gh_mirrors/ic/ics 场景需求&#xff1a;现代日程管理的痛点与解决方案 在数字化办公环境中&#xff0c;日程管理面临…...

S2-Pro模型推理服务高可用部署:基于Docker与Kubernetes的架构

S2-Pro模型推理服务高可用部署&#xff1a;基于Docker与Kubernetes的架构 1. 为什么需要高可用部署 在实际生产环境中&#xff0c;AI模型推理服务的稳定性直接影响业务连续性。想象一下&#xff0c;当你的电商平台正在举行大促活动&#xff0c;AI推荐系统突然宕机&#xff0c…...

小白也能玩转AI翻译:translategemma图文翻译快速入门指南

小白也能玩转AI翻译&#xff1a;translategemma图文翻译快速入门指南 1. 认识translategemma&#xff1a;你的私人翻译助手 translategemma-12b-it是Google基于Gemma 3模型开发的开源翻译模型&#xff0c;它能同时处理文本和图片中的文字翻译。想象一下&#xff0c;你正在国外…...

终极指南:如何让2012-2015年老款Mac安装最新macOS系统

终极指南&#xff1a;如何让2012-2015年老款Mac安装最新macOS系统 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 您的2012-2015年老款Mac是否已被苹果官方抛…...

AI 视频生成美女跳舞测评 | 顶级 Prompt实测版(Grok Imagine、Kling AI 3.0、Veo 3.1)

兄弟们&#xff0c;AI 视频生成已经卷到飞起了&#xff01;之前写小黄文靠grok&#xff0c;现在生成“美女舞蹈”视频也得靠它。 今天上手实测截至今天热门的3款视频生成工具&#xff0c;专攻“美女跳舞”这个高难度场景&#xff1a;动作流畅度、人物一致性、性感画面感、提示…...

EasyAnimateV5-7b-zh-InP在AI艺术创作中的算法优化实践

EasyAnimateV5-7b-zh-InP在AI艺术创作中的算法优化实践 1. 引言 作为一名数字艺术创作者&#xff0c;我一直在寻找能够提升创作效率和质量的技术工具。最近在尝试使用EasyAnimateV5-7b-zh-InP进行艺术创作时&#xff0c;发现这个模型在图像到视频的转换方面表现出色&#xff…...

避坑指南:Informer模型更换自定义数据集时,90%新手会忽略的5个关键参数

Informer模型自定义数据集避坑指南&#xff1a;5个关键参数详解与实战调优 第一次尝试将Informer模型应用到自己的数据集上时&#xff0c;我盯着屏幕上那一串令人绝望的报错信息发呆了整整半小时。明明已经按照官方示例修改了数据路径和基本参数&#xff0c;为什么模型要么无法…...