目錄
<code>sync.Pool</code> 是臨時對象池,存儲的是臨時對象,不可以用它來存儲 <code>socket</code> 長連接配接和資料庫連接配接池等。
<code>sync.Pool</code> 本質是用來儲存和複用臨時對象,以減少記憶體配置設定,降低 GC 壓力,比如需要使用一個對象,就去 Pool 裡面拿,如果拿不到就配置設定一份,這比起不停生成新的對象,用完了再等待 GC 回收要高效的多。
<code>sync.Pool</code> 的使用很簡單,看下示例代碼:
當使用 <code>student</code> 對象時,隻需要調用 <code>New()</code> 方法擷取對象,擷取之後使用 <code>defer</code> 函數進行釋放即可。
關于 <code>sync.Pool</code> 裡面的對象具體是什麼時候真正釋放,是由系統決定的。
一定要注意存儲的是臨時對象!
一定要注意 <code>Get</code> 後,要調用 <code>Put</code> !
以上,希望對你能夠有所幫助。