【发布时间】:2017-10-24 18:30:46
【问题描述】:
我正在编写一个并行处理矩阵的程序。
我的矩阵是使用常量n 创建的。
const n = 10
频道是使用以下代码创建的:
a := make(chan [n][n]int)
对于n 的值低于12 的任何值都可以正常工作,但是任何更大的值都会出现以下错误:
channel element type too large (>64kB)
查看教程等,似乎缓冲通道可能是解决此问题的方法,但我尝试使用以下代码执行此操作并给出相同的错误:
a := make(chan [n][n]int, 1000)
我是否正确使用了缓冲通道,或者它们不是解决此问题的方法?非常感谢任何有关我如何继续前进的提示。
编辑:根据给出的答案和 cmets,我现在正在尝试创建一个空白的全局矩阵,并且 go 例程可以写入。
const n int = 1024
blank [n][n]int
我不确定如何在全局范围内声明它,并尝试通过上述方法解决这个问题。它需要全局初始化吗?我似乎尝试的一切都会出错。
【问题讨论】:
标签: arrays matrix go channel goroutine