文章目录

  • 背景
  • 代码

背景

跟着老男孩第五期学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并发死锁相关推荐

  1. golang 返回值报错 cannot use nil as type string in return argument

    在刚刚开始使用golang写代码的时候,经常会放错.给一个变量放回一个nil,这个通常编译的时候不会报错,但是运行是时候会报cannot use nil as type string in retur ...

  2. 使用golang发送邮件,报错“x509: certificate signed by unknown authority”

    问题描述 使用golang发送邮件,报错"x509: certificate signed by unknown authority",这是由于客户端默认要对服务端传过来的数字证书 ...

  3. MySQL事务原理分析(ACID特性、隔离级别、锁、MVCC、并发读异常、并发死锁以及如何避免死锁)

    MySQL事务原理分析(ACID特性.隔离级别.锁.MVCC.并发读异常.并发死锁以及如何避免死锁) 一.事务 目的 组成 特征 事务空间语句 二.ACID特性 原子性(A) 隔离性(I) 持久性(d ...

  4. 【多线程】并发死锁问题与企业级解决方案

    1. 死锁是什么?有什么危害 1.1 什么是死锁 发生在并发种 互不相让:当两个(或更多)线程(或进程)相互持有对方所需要的资源,又不主动释放,导致所有人都无法继续前进,导致程序陷入无尽的阻塞,这就是 ...

  5. golang静态代码检查配置与常见格式异常

    go环境配置 下载go1.13版本,通过命令解压到/usr/local目录下,并设置环境变量: sudo tar -zxvf go1.13.9.linux-amd64.tar.gz -C /usr/l ...

  6. [Git] 拉开发分支的代码报错

    Git拉开发分支的代码报错: fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed ...

  7. matlab中任意两边之和大于第三边,无法赋值,左侧大小1*1,右侧1*3,代码报错,但是看不出来两边大小不相等啊...

    帮忙看一下,代码报错 clc; clear all; P_LED=0.02; nLED=60; Pt=nLED*nLED*P_LED; A= 1e-4; %PD探测物理面积********* thet ...

  8. 对于在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"解 ...

  9. 【错误记录】Android Studio 向 GitHub 提交代码报错 ( Push failed: Failed with error: Could not read | 使用命令行提交代码 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 Android Studio 中首次向 GitHub 提交代码 , 报错 : Push failed: Failed with error: C ...

最新文章

  1. SAP MM 影响Vendor主数据维护界面的字段选择的四大因素?
  2. Mysql数据库的安装教程
  3. 【Python】100行Python代码轻松开发个人博客
  4. [css] 怎么让英文单词的首字母大写?
  5. iOS开发API常用英语名词
  6. Alpha冲刺(7/10)
  7. 傅里叶变换的更多性质:相位展开、零相位窗等
  8. Kafka-produce(发送者)
  9. layUI:垂直导航栏点击某个导航时关闭其他已开启导航
  10. 圣诞收到最搞笑的短信两则
  11. 如何配置Web服务器?web服务器配置方法步骤
  12. 计算机黑屏不亮,win7休眠后唤醒电脑但屏幕一直黑屏不亮的解决方法
  13. php模板如何使用,PHP自定义模板标签详细解答,让你轻松驾驭
  14. 转录组入门(2):读文章拿到测序数据
  15. php直接读取csv文件,php怎么读取csv文件?
  16. 【TUG 话题探讨 005】TiDB 生态工具(DM、TiCDC等)使用场景及常见问题
  17. 全球医药研发支出及处方药市场发展前景分析:预计到2026年全球处方药销售额超过1.4万亿美元[图]
  18. mysql 查询当前年份
  19. java版我的世界有溺尸_我的世界溺尸怎么生成
  20. 计算机组装与维护的实验报告三万字,计算机组装与维护实验报告..doc

热门文章

  1. 思科网络基础课件_网络自动化认证,你选对了吗?
  2. 力扣第202题. 快乐数(JavaScript)
  3. python字符串操作_Python 字符串操作 - 树懒学堂
  4. python写飞机大战游戏_python实现飞机大战游戏
  5. 将数据导入到mysql_Mongodb数据导入到mysql
  6. mock如何为空_Mockito怎么样Mock返回值为空的方法
  7. php mongoclient使用,PHP使用mongoclient简单操作mongodb数据库示例
  8. postgres 命令行建数据库表_PostgreSQL学习笔记(1)之模板数据库
  9. python mss_Python实现的连接mssql数据库操作示例
  10. php 取某个时间的时间戳,PHP 获取指定年月日的开始和结束时间戳