go原始碼解讀(二)

2021-09-24 05:57:51 字數 1063 閱讀 6180

// solve the 2,3,5 problem (print all numbers with 2, 3, or 5 as factor) using channels.

使用通道解決2,3,5問題(以2、3或5為因子列印所有數字)。

// test the solution, silently.

測試解決方案。

**

package main

type t chan

uint64

//在函式中啟動goroutine,並建立兩個管道用來傳送數字和接受數字,每乙個管道有100個緩衝區,對2,3,5進行乘法

func

m(f uint64

)(in, out t)

}(in, out, f)

return in, out

}//獲取切片中最小的數

func

min(xs [

]uint64

)uint64

}return m

}func

main()

var n =

len(f)

out :=

uint64

x :=

uint64(1

) ins :=

make([

]t, n)

outs :=

make([

]t, n)

xs :=

make([

]uint64

, n)

//連續建立三對管道,在m函式裡必須啟動goroutine,如果沒有乙個協成的話,整個函式會陷入死鎖

for i :=

0; i < n; i++

for i :=

0; i <

len(out)

; i++

for i :=

0; i < n; i++

} x =

min(xs)

if x != out[i]

}}

go語言 io原始碼解讀

reader 介面的定義如下 type reader inte cereader 方法 func readfromsource reader io.reader,num int byte,error return p,err 呼叫.read方法 read 介面 入參 byte 陣列p 返回 int型...

go中errgroup原始碼解讀

來看下errgroup的實現 func main eg.go func error if err eg.wait err nil 模擬於waitgroup,errgroup增加了乙個對goroutine錯誤收集的作用。不過需要注意的是 errgroup返回的第乙個出錯的goroutine丟擲的err...

GPUImage原始碼解讀 二

這篇文章主要是閱讀gpuimage框架中的 glprogram gpuimagecontext 兩個重要類的原始碼。這兩個類是 gpuimage 框架的基礎,裡面涉及的知識也有 opengl es 基礎 和 多執行緒 基礎。以下是原始碼內容 glprogram 一 glprogram glprogr...