首页 > 其他分享 >golang 管道channel相关问题

golang 管道channel相关问题

时间:2024-08-13 19:53:24浏览次数:13  
标签:协程 chan golang 管道 报错 func c1 main channel

func main() {
	c1:= make(chan any)
	<-c1
}

上面代码运行肯定会报deadlock的死锁错误,但是下面这样,如果有一个协程一直在运行,则不会报错,大致就是因为协程还在运行,所属主协程main不确定是否会往管道c1中写数据,所以就会一直阻塞在这里,上面的代码块或者没有一直执行的协程,那main就会知道不会再往管道c1中写数据了,就会报错(当然是个人理解,未找到具体的相关资料

func main() {
	go func() {
		for {
			fmt.Println(11)
			time.Sleep(1 * time.Second)
		}
	}()
	c1:= make(chan any)
	<-c1
}

标签:协程,chan,golang,管道,报错,func,c1,main,channel
From: https://blog.csdn.net/zuoye1010/article/details/141172164

相关文章

  • Linux系统中的管道命令、grep命令、sed命令和awk命令
    本章将和大家分享Linux系统中的管道命令、grep命令、sed命令和awk命令。废话不多说,下面我们直接进入主题。一、管道命令Linux中的管道命令(pipe)是一种非常强大的特性,它允许你将一个命令的输出作为另一个命令的输入。管道命令极大地增强了命令行的灵活性和功能,使得复杂的数据处理......
  • Golang中使用redis,mysql
    一、redis简介redis(REmoteDIctionaryServer)是一个由SalvatoreSanfilippo写key-value存储系统,它由C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value类型的数据库,并提供多种语言的API。和Memcached类似,它支持存储的value类型相对更多,包括string(......
  • 4.2.RSTP_MSTP_Ether Channel
    spanningtreeprotocol(stp)portfast快速端口blk20-slis15s-ler15s-fwd接非交换机设备,如pc、路由器实验r4:inte0/0ipadd100.1.1.4255.255.255.0noshr6:intf0/0ipadd100.1.1.6255.255.255.0noshshutdownsw1:showspanningtreedebugspanning-treeeve......
  • Redis之golang编程实战
    Redis介绍官网:Redis-TheReal-timeDataPlatformRedis可作为数据库、缓存、流引擎和消息代理的开源内存数据存储。被用在不计其数的应用中。Redis连续5年被评为最受欢迎的数据库,是开发人员、架构师和开源贡献者参与社区的中心。Redis是一个开源(BSD许可)的内存数据......
  • 在 Windows 上使用 LCX(Local Channel eXchange)来进行本地和远程转发,此大纲旨在提供顶
    LCX(LocalChanneleXchange)通常指的是一种用于网络协议中的本地和远程转发技术。如果你在谈论的是与LCX相关的网络配置,它可能涉及不同的上下文,例如在通信协议或网络交换中。本地和远程转发的基本概念:本地转发(LocalForwarding):本地转发将本地计算机上的一个端口转发到......
  • Golang语言之Prometheus的日志模块使用案例
    作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。目录一.源代码编写二.编译三.测试一.源代码编写packagemainimport( "fmt" "os" "path/filepath" "time" "g......
  • 在两个大文件中找出相同的记录,用golang如何写?
    在两个大文件中找出相同的记录,可以使用Golang实现高效的算法。这里主要涉及以下几个步骤:读取文件:逐行读取两个大文件。使用数据结构存储记录:可以使用Go的map数据结构来存储其中一个文件的记录,之后遍历另一个文件,检查其记录是否在map中,若在则记录下该相同记录。输出结果:将......
  • Linux标准输入输出与重定向、管道技术
    Linux标准输入输出与重定向、管道技术1.标准输入输出1.1概念每个Linux程序执行时,默认打开三个标准文件描述符:标准输入(STDIN):文件描述符为0,通常对应终端键盘。标准输出(STDOUT):文件描述符为1,默认输出到屏幕。错误输出(STDERR):文件描述符为2,默认输出到屏幕。1.2示例cat......
  • Golang 中 defer panic recover 简单使用
    Golangdefer、panic、recoverdeferdefer语句用于延迟执行一个函数调用,直到包含该defer语句的函数执行完毕。defer语句通常用于释放资源、关闭文件、解锁互斥锁等操作。defer语句的执行顺序是后进先出,即最后被defer的语句最先执行。例如:funcmain(){deferfmt.Pr......
  • 在管道之前或之后分离 X 和 y 中的数据?
    我有以下内容:train_set,test_set=train_test_split(arbres_df,test_size=0.2,random_state=42)哪个是旧的train_test_split我们知道。然后我将功能和目标分开:train_feat=train_set.drop("anneedeplantation",axis=1).reset_index(drop=True)train_......