004 Golang-channel-practice 左右括号匹配
第四题 左右括号打印
一个协程负责打印“(”,一个协程负责打印“)”,左右括号的数量要匹配。在这道题目里,我在main函数里进行了一个死循环。会产生一个随机数,随机数就是接下来要打印的左括号的数量。
例如:((((()))))、(())、()。这样是正确的。一个左括号要匹配一个右括号。数量要对上~
())、((())。一看就左右不平衡,这就是错的!
在这里,我们运用了“空结构体”,这个空结构体是用来“占位置”的。A协程打印了多少个左括号,A协程就要往channel传递多少个空结构体,B协程再根据channel中空结构体的数量,来打印右括号
package main
import ("fmt""math/rand""sync""time"
)
func producer(c chan struct{}, times int) {defer close(c)for i := 0; i < times; i++ {fmt.Print("(")c <- struct{}{}}
}
func consumer(c chan struct{}, wg *sync.WaitGroup) {defer wg.Done()for range c {fmt.Print(")")}
}
func main() {rand.Seed(time.Now().UnixNano())for {times := rand.Intn(10) + 1c := make(chan struct{})var wg sync.WaitGroupgo producer(c, times)// 启动多个消费者 goroutinefor i := 0; i < times; i++ {wg.Add(1)go consumer(c, &wg)}wg.Wait()}
}
来看看输出!

相关文章:
004 Golang-channel-practice 左右括号匹配
第四题 左右括号打印 一个协程负责打印“(”,一个协程负责打印“)”,左右括号的数量要匹配。在这道题目里,我在main函数里进行了一个死循环。会产生一个随机数,随机数就是接下来要打印的左括号的数量。 例…...
MS2351M/MS2351D:RF 检测器/控制器
产品简述 MS2351M/MS2351D 是一款对数放大器芯片,主要用于接收 信号强度指示 (RSSI) 与 控 制 功 率 放 大 器 , 工 作 频 率 范 围 是 0.05GHz 4.0GHz ,动态范围随信号频率不同可达 35dB 到 45dB 。 MS2351M/MS2351D 是电压响…...
vue中使用js-doc
安装依赖 安装vue-template-compiler npm install vue-template-compiler 安装minami npm install minami 安装js-doc npm install js-doc 根目录下创建 .jsdoc.conf.json 内容: {"tags": {"allowUnknownTags": true,// 指定所用词…...
Hive知识点
基本概念: 由Facebook开源,构建在Hadoop之上的数据仓库,数据计算是mapreduce,数据存储是HDFS 目的是构建面向分析的集成的数据环境,为企业提供决策支持 (面向分析的存储系统) 主要特征&…...
android自启动
Android 开机自动启动一个Service 附源码_watchdogservice-CSDN博客 执行 adb push 本地地址 目标地址 时遇到错误: adb: error: failed to copy app-release.apk to /system/app/app-release.apk: remote couldnt create file: Read-only file system 解决方案…...
cookie、Web Storage
前端知识汇编 1. cookie1.1 cookie的限制1.2 cookie的构成1.3 JavaScript中的cookie1.4 子cookie1.5 使用cookie的注意事项 2. Web Storage2.1 Storage类型2.2 sessionStorage对象2.3 localStorage对象2.4 存储事件2.5 限制 1. cookie cookie是客户端与服务器端进行会话时使用…...
【rk3568】01-环境搭建
文章目录 1.开发板介绍1.1相关资源:1.2接口布局1.3屏幕1.4核心板引脚可复用资源 2.环境搭建2.1安装依赖包2.2git配置2.3安装sdk2.4sdk介绍2.5sdk编译 3.镜像介绍 1.开发板介绍 开发板:atk-rk3568开发板 eMMC:64G LPDDR4:4G 显示屏…...
编程笔记 html5cssjs 036 CSS概述
编程笔记 html5&css&js 036 CSS概述 一、什么是 CSS?二、样式非常重要三、CSS 语法四、CSS 注释五、示例 CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式…...
Vue入门七(Vuex的使用|Vue-router|LocalStorage与SessionStorage和cookie的使用)
文章目录 一、Vuex1)理解vuex2)优点3)何时使用?4)使用步骤① 安装vuex② 注册vuex③ 引用vuex④ 创建仓库Store五个模块介绍 5)基本使用 二、Vue-router三、LocalStorage与SessionStorage、cookie的使用 一…...
多级缓存架构(三)OpenResty Lua缓存
文章目录 一、nginx服务二、OpenResty服务1. 服务块定义2. 配置修改3. Lua程序编写4. 总结 三、运行四、测试五、高可用集群1. openresty2. tomcat 通过本文章,可以完成多级缓存架构中的Lua缓存。 一、nginx服务 在docker/docker-compose.yml中添加nginx服务块。…...
写点东西《Docker入门(上)》
写点东西《Docker入门(上)》 环境变量 Docker 镜像 Docker CMD 与 ENTRYPOINT 有什么区别 Docker 中的网络: Docker 存储: Docker 是一个工具,允许开发人员将他们的应用程序及其所有依赖项打包到一个容器中。然后&…...
chatgpt实用技巧之二反问式提示
大家好,今天跟大家讲实用gpt的小技巧二、反问式提示 有时候不知道怎么给 GPT 提示词,这时候,就可以反问 GPT 如何更好地给提示词。如图片所示 更详细内容可以看下这篇: 按照 GPT 给出的:故事设定角色故事发展主题结局…...
【数据结构和算法】奇偶链表
其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一:分离节点后合并 三、代码 3.1 方法一:分离节点后合并 四、复杂度分…...
MVC框架
文章目录 JSP 和 ServletMVC 的演进1. JSP Model 12. JSP Model 23. MVC 的一般化4. MVC 的变体 总结 JSP 和 Servlet 如果你有使用 Java 作为主要语言开发网站的经历,那么你一定听过别人谈论 JSP 和 Servlet。其中,Servlet 指的是服务端的一种 Java 写…...
学习笔记之——3D Gaussian Splatting及其在SLAM与自动驾驶上的应用调研
之前博客介绍了NeRF-SLAM,其中对于3D Gaussian Splatting没有太深入介绍。本博文对3D Gaussian Splatting相关的一些工作做调研。 学习笔记之——NeRF SLAM(基于神经辐射场的SLAM)-CSDN博客文章浏览阅读967次,点赞22次࿰…...
Github Copilot 的使用方法和快捷键
Github Copilot是一个基于人工智能技术的代码自动补全工具,它可以为开发者提供实时的代码建议和自动生成代码片段。本文将详细介绍如何安装、设置和使用Github Copilot,并提供一些常用的快捷键来提高开发效率。 1. 安装和设置 1.1 下载并安装VS Code …...
开源iMES工厂管家 - 详细安装部署指南(图解)- 全网独稿
目录 一、服务器环境: 二、部署构成总览: 三、下载 node-v16.17.1-win-x64:Index of /download/release/v16.17.1/ 四、绿色安装 node-v16.17.1-win-x64 五、配置环境变量 六、检查 node-v16.17.1-win-x64 是否成功 七、执行命令组,安装组库与各种依赖 vue3环境配置…...
Codeforces Round 919 (Div. 2)
Problem - A - Codeforces n个约束条件 a x 求出满足n个约束条件的整数的个数 大于等于x,取最大的 小于等于x,取最小的 然后不等于x的,记录在区间范围内的个数,减去这些 #include<bits/stdc.h> #define endl \n #define …...
面向经验丰富的开发人员的最佳 Linux 发行版
在深入研究最佳 Linux 发行版之前,让我们回顾一下历史。到 2021 年,Linux 操作系统已经有 30 年的历史了,从作为开发者 Linus Torvalds 的个人项目开始,它已经走过了很长一段路。最初发布时,其源代码被分发给用户&…...
Rust-借用检查
Rust语言的核心特点是:在没有放弃对内存的直接控制力的情况下,实现了内存安全。 所谓对内存的直接控制能力,前文已经有所展示:可以自行决定内存布局,包括在栈上分配内存,还是在堆上分配内存;支…...
对比直接使用厂商API,Taotoken在稳定性方面的补充价值
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用厂商API,Taotoken在稳定性方面的补充价值 在构建依赖大模型能力的应用时,开发者通常会直接调用…...
机器遗忘:从合规需求到技术实现,ROEL-TID框架如何平衡效率与精度
1. 项目概述:当机器学习模型需要“忘记”时在过去的十年里,我亲眼见证了机器学习如何从一个学术概念,演变为驱动商业决策、优化用户体验乃至重塑行业格局的核心引擎。从电商平台的“猜你喜欢”,到金融系统的欺诈交易拦截ÿ…...
【实时更新 | 2026 年】国内可用的 npm 镜像源/加速器配置大全(附测速方法)
【实时更新 | 2026 年】国内可用的 npm 镜像源/加速器配置大全(附测速方法)导语:在国内用 npm 安装依赖,直连官方源的速度经常只有几十 KB/s,一个 npm install 动辄等上十几分钟。配置国内镜像源后,下载速度…...
CFD湍流模型不确定性量化:特征空间扰动框架原理与应用
1. 项目概述与核心挑战在计算流体力学(CFD)的工程实践中,我们常常面临一个核心困境:如何高效且可靠地预测复杂湍流?雷诺平均纳维-斯托克斯(RANS)模型因其在计算成本和工程实用性之间的绝佳平衡&…...
d2dx深度探索:经典游戏《暗黑破坏神2》现代化适配的技术架构与实现原理
d2dx深度探索:经典游戏《暗黑破坏神2》现代化适配的技术架构与实现原理 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2d…...
告别卡顿与黑边:D2DX让你的《暗黑破坏神2》在现代PC上完美重生
告别卡顿与黑边:D2DX让你的《暗黑破坏神2》在现代PC上完美重生 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你…...
5分钟掌握qmcdump:解锁QQ音乐加密音频的终极指南
5分钟掌握qmcdump:解锁QQ音乐加密音频的终极指南 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是否曾经…...
如何在Windows上快速安装苹果设备驱动:告别连接烦恼的完整指南
如何在Windows上快速安装苹果设备驱动:告别连接烦恼的完整指南 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.co…...
Ubuntu 22.04上从零安装UCSF DOCK 6.11:手把手解决依赖与编译的那些坑
Ubuntu 22.04实战:UCSF DOCK 6.11完整安装指南与避坑手册在计算化学和药物发现领域,UCSF DOCK一直是分子对接和虚拟筛选的重要工具。最新发布的6.11版本集成了RDKit功能,为药物描述符计算和分子设计带来了全新可能。本文将带你在Ubuntu 22.04…...
AI专著生成攻略:实测优质AI工具,高效完成20万字专著撰写!
学术专著的核心价值在于其内容的系统性以及逻辑的完整性,但是,这恰恰是写作过程中最具挑战性的部分。与期刊论文只关注某一个具体问题不同,专著要求建立一个完整的框架,涵盖绪论、理论基础、核心研究、应用拓展和结论。这就要求各…...
