我正在编写一个并行处理矩阵的程序。
我的矩阵是使用常量n
创建的。
const n = 10
通道是使用以下代码创建的:
a := make(chan [n][n]int)
对于小于约 12
的值的n
,此方法可以正常使用。然而,如果n
的值更大,则会出现以下错误:
channel element type too large (>64kB)
看了一些教程,似乎缓冲通道可能是解决这个问题的方法,但我尝试使用以下代码进行操作,结果仍然出现相同的错误:
a := make(chan [n][n]int, 1000)
我是否正确使用了缓冲通道,或者它们不是解决这个问题的方法?非常感谢您提供前进的任何提示。
编辑:根据给出的答案和评论,我现在正在尝试创建一个全局矩阵,它是空白的,go routines可以写入。
const n int = 1024
blank [n][n]int
我不确定如何在全局范围内声明它,并尝试以上方法解决此问题。它需要在全局范围内初始化吗?似乎我尝试的一切都会出现错误。