記一次close chan出的問題

2021-10-19 07:04:20 字數 1056 閱讀 5035

在一次寫**的過程中,將乙個chan給close掉之後,發現有的時候在讀chan的select中會報錯,當時很納悶為什麼呢?

於是我就寫了乙個驗證,發現close後讀chan肯定能讀出來nil,當時就懵逼了,不應該close了就讀出,應該阻塞呀。

ch := make(chan *mm, 3)

go func() else

}} }()

ch<-&mm

time.sleep(3*time.second)

close(ch)

time.sleep(30*time.second)

ok 4

error false

沒有見識的我怎麼也沒想通,然後我就點開了close準備想看看他是什麼操作的時候,我發現我太真是讀書不認真啊!

// the close built-in function closes a channel, which must be either

// bidirectional or send-only. it should be executed only by the sender,

// never the receiver, and has the effect of shutting down the channel after

// the last sent value is received. after the last value has been received

// from a closed channel c, any receive from c will succeed without

// blocking, returning the zero value for the channel element. the form

// x, ok := <-c

// will also set ok to false for a closed channel.

func close(c chan<- type)

看到這兒應該都明白了

記一次noprefixroute引發的問題

ip addr顯示內容 inet 中包含 noprefixroute,看著礙眼想去掉,不知道怎麼弄。最終找到了一台不顯示這項引數的機器,開啟其 etc sysconfig network scripts ifcfg ethx,多方比對發現配置了nm controlled no。該引數預設為yes,竟...

redis配置優化 記一次線上redis問題排查

在通過redis快取進行了一系列的介面效能優化後,大部分介面返回在1ms 200ms間,這都是redis的功勞,但隨著介面redis快取越來越多,新的問題產生了,從redis取資料竟然用了5s 通過觀察日誌,並不是每次取資料都是5s,大部分情況從redis取資料還是很快的不會超過5ms.1 在檢視 ...

記一次IOS提審被拒UIWebView問題

有一段時間沒更新文章了,最近幾天忙著ios sdk接入提審過審工作,此文記錄一次提審被拒的棘手問題,我不以專業的ios開發者,來記錄最有效的解決方案。這幾天提審ipa包,被拒審,內容如下 itms90809 instead,use wkwebview for improved security an...