Go 语言并发编程快速入门 20240814教学笔记及实战代码

Go 语言并发编程快速入门 20240814教学笔记及实战代码

代码Github地址

https://github.com/zhangdapeng520/zdpgo_goroutine

Go语言如何从终端录入数据

go 复制代码
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	// 创建从终端录入数据的对象
	scanner := bufio.NewScanner(os.Stdin)

	// 开始扫描终端输入
	fmt.Println("请输入:")
	scanner.Scan()

	// 获取终端的数据
	text := scanner.Text()

	// 输出数据
	fmt.Println("您输入的是:", text)
}

循环的从终端录入数据

go 复制代码
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	// 创建从终端录入数据的对象
	scanner := bufio.NewScanner(os.Stdin)

	// 开始扫描终端输入
	for scanner.Scan() {
		// 获取终端的数据
		text := scanner.Text()

		// 退出条件
		if text == "exit" {
			break
		}

		// 输出数据
		fmt.Println("您输入的是:", text)
	}
}

管道的创建、关闭和读写

go 复制代码
package main

import "fmt"

func main() {
	// 创建管道
	ch := make(chan string)

	// 关闭管道
	defer close(ch)

	// 开启goroutine
	go func() {
		// 写入
		ch <- "张大鹏"
	}()

	// 读取
	val := <-ch
	fmt.Println("从管道读取到数据:", val)
}

循环录入和读取管道数据

go 复制代码
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	// 创建管道
	ch := make(chan string)

	// 关闭管道
	defer close(ch)

	// 开启goroutine
	go func() {
		// 循环读取
		for v := range ch {
			if v == "exit" {
				break
			}
			fmt.Println(v)
		}
	}()

	// 录入
	scanner := bufio.NewScanner(os.Stdin)
	for scanner.Scan() {
		text := scanner.Text()
		ch <- text
		if text == "exit" {
			break
		}
	}
}
相关推荐
ab1237689 分钟前
OpenCV 学习笔记
笔记·opencv·学习
daxiangxm17 分钟前
GEO策略:让AI直接引用你的内容
开发语言·团队开发·运维开发·个人开发·数据库开发
泡海椒28 分钟前
JQuick-Excel 实战:用 VALIDATION 建立可维护的 Excel 导入校验
开发语言·python·excel
longlongzihan31 分钟前
前缀积与后缀积 —— LeetCode 238. 除了自身以外数组的乘积
开发语言·c++·leetcode
Duang007_32 分钟前
生产可观测性:从“系统慢“到“根因“的完整链路(Go / TypeScript)
后端·python·golang·typescript·prometheus
szial1 小时前
JavaScript 的 call、apply 和 bind:如何控制函数调用
开发语言·前端·javascript
weixin_307779131 小时前
C++代码实现MATLAB中的cvpartition函数功能
开发语言·c++·算法·matlab
黑妹天下第一乖1 小时前
小智改造实战解读-首 token 延迟去哪了:云端与端侧大模型的分段对照
开发语言·人工智能·python·嵌入式硬件·自然语言处理·iot
。小二1 小时前
Go 泛型并发利刃:async 库深度评测——370K ops/s、零依赖、生产就绪
开发语言·javascript·golang
(Charon)1 小时前
【C++面试】线程同步机制:互斥锁、条件变量、原子操作与读写锁
开发语言·c++·算法·面试