golang |问题代码报go并发死锁
文章目录
- 背景
- 代码
背景
跟着老男孩第五期学go,老师的设计是使用结构体,我捣鼓能不能不用结构体。结果很多问题。做个记录。
其实主要想不明白,channel是引用类型,为什么还会有指针的channel类型。
var a = make(chan *int)
var b = make(chan * bool)
代码
package mainimport ("fmt""math/rand""sync""time"
)var wg sync.WaitGroup
var t1 = make(chan int, 200)
var t2 = make(chan int, 200)func sc(a chan<- int) {defer wg.Done()for i := 0; i < 10; i++ {a <- rand.Int()// fmt.Println("js inside:", a)time.Sleep(time.Millisecond * 1000)}
}func js(ch1 <-chan int, ch2 chan<- int) {defer wg.Done()n := <-ch1sum := 0for n > 0 {sum += n % 10n = n / 10}ch2 <- sum
}func main() {wg.Add(2)go sc(t1)// wg.Add(24)// for i := 0; i < 24; i++ {// go js(t1, t2)// }go js(t1, t2)wg.Wait()for a := range t2 {fmt.Println("outside:", a)// for b := range t1 {// fmt.Println("outside:", b, a)// }}
}
golang |问题代码报go并发死锁相关推荐
- golang 返回值报错 cannot use nil as type string in return argument
在刚刚开始使用golang写代码的时候,经常会放错.给一个变量放回一个nil,这个通常编译的时候不会报错,但是运行是时候会报cannot use nil as type string in retur ...
- 使用golang发送邮件,报错“x509: certificate signed by unknown authority”
问题描述 使用golang发送邮件,报错"x509: certificate signed by unknown authority",这是由于客户端默认要对服务端传过来的数字证书 ...
- MySQL事务原理分析(ACID特性、隔离级别、锁、MVCC、并发读异常、并发死锁以及如何避免死锁)
MySQL事务原理分析(ACID特性.隔离级别.锁.MVCC.并发读异常.并发死锁以及如何避免死锁) 一.事务 目的 组成 特征 事务空间语句 二.ACID特性 原子性(A) 隔离性(I) 持久性(d ...
- 【多线程】并发死锁问题与企业级解决方案
1. 死锁是什么?有什么危害 1.1 什么是死锁 发生在并发种 互不相让:当两个(或更多)线程(或进程)相互持有对方所需要的资源,又不主动释放,导致所有人都无法继续前进,导致程序陷入无尽的阻塞,这就是 ...
- golang静态代码检查配置与常见格式异常
go环境配置 下载go1.13版本,通过命令解压到/usr/local目录下,并设置环境变量: sudo tar -zxvf go1.13.9.linux-amd64.tar.gz -C /usr/l ...
- [Git] 拉开发分支的代码报错
Git拉开发分支的代码报错: fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed ...
- matlab中任意两边之和大于第三边,无法赋值,左侧大小1*1,右侧1*3,代码报错,但是看不出来两边大小不相等啊...
帮忙看一下,代码报错 clc; clear all; P_LED=0.02; nLED=60; Pt=nLED*nLED*P_LED; A= 1e-4; %PD探测物理面积********* thet ...
- 对于在git上面拉代码报“error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054“解决方法
对于在git上面拉代码报"error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054"解 ...
- 【错误记录】Android Studio 向 GitHub 提交代码报错 ( Push failed: Failed with error: Could not read | 使用命令行提交代码 )
文章目录 一.报错信息 二.解决方案 一.报错信息 在 Android Studio 中首次向 GitHub 提交代码 , 报错 : Push failed: Failed with error: C ...
最新文章
- SAP MM 影响Vendor主数据维护界面的字段选择的四大因素?
- Mysql数据库的安装教程
- 【Python】100行Python代码轻松开发个人博客
- [css] 怎么让英文单词的首字母大写?
- iOS开发API常用英语名词
- Alpha冲刺(7/10)
- 傅里叶变换的更多性质:相位展开、零相位窗等
- Kafka-produce(发送者)
- layUI:垂直导航栏点击某个导航时关闭其他已开启导航
- 圣诞收到最搞笑的短信两则
- 如何配置Web服务器?web服务器配置方法步骤
- 计算机黑屏不亮,win7休眠后唤醒电脑但屏幕一直黑屏不亮的解决方法
- php模板如何使用,PHP自定义模板标签详细解答,让你轻松驾驭
- 转录组入门(2):读文章拿到测序数据
- php直接读取csv文件,php怎么读取csv文件?
- 【TUG 话题探讨 005】TiDB 生态工具(DM、TiCDC等)使用场景及常见问题
- 全球医药研发支出及处方药市场发展前景分析:预计到2026年全球处方药销售额超过1.4万亿美元[图]
- mysql 查询当前年份
- java版我的世界有溺尸_我的世界溺尸怎么生成
- 计算机组装与维护的实验报告三万字,计算机组装与维护实验报告..doc
热门文章
- 思科网络基础课件_网络自动化认证,你选对了吗?
- 力扣第202题. 快乐数(JavaScript)
- python字符串操作_Python 字符串操作 - 树懒学堂
- python写飞机大战游戏_python实现飞机大战游戏
- 将数据导入到mysql_Mongodb数据导入到mysql
- mock如何为空_Mockito怎么样Mock返回值为空的方法
- php mongoclient使用,PHP使用mongoclient简单操作mongodb数据库示例
- postgres 命令行建数据库表_PostgreSQL学习笔记(1)之模板数据库
- python mss_Python实现的连接mssql数据库操作示例
- php 取某个时间的时间戳,PHP 获取指定年月日的开始和结束时间戳