第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

go 的 net.Close() 是冪等的嗎?

go 的 net.Close() 是冪等的嗎?

Go
慕絲7291255 2022-07-11 14:34:19
該io.Closer接口的文檔說:第一次調用后關閉的行為是未定義的。具體的實現(xiàn)可能會記錄他們自己的行為。anet.Conn的Close()功能呢?我可以安全地多次調用它嗎?具體來說,我想知道我是否可以defer c.Close()提前返回錯誤,但仍然顯式調用c.Close()而不是讓客戶端等待我完成后臺處理。
查看完整描述

1 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

嗯,net.Conn是一個接口,所以要看具體的實現(xiàn)。

我檢查了TCPConn,UDPConnIPConnstructs 中的實現(xiàn)。它們似乎包含這個net.Conn接口的實現(xiàn)。

這個實現(xiàn)將Close()調用傳播到它的底層文件描述符,這意味著在 Unix 系統(tǒng)上這個函數(shù)會被調用。

我們必須走得更低,因為下一個調用是文件描述符使用的互斥鎖。

如果連接先前已關閉并釋放互斥鎖,則它似乎返回 false,并且文件描述符Close()函數(shù)返回ErrNetClosing 錯誤

所以,我可以自由地說,你不應該多次調用它,因為在我描述的這種情況下,它會返回一個錯誤。但它也可能不會在其他人中出錯。正如文檔所說 - 這是未定義的行為。


查看完整回答
反對 回復 2022-07-11
  • 1 回答
  • 0 關注
  • 98 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號