hic003cih / Golang

0 stars 0 forks source link

bufferChannel和unbufferChannel #37

Open hic003cih opened 4 years ago

hic003cih commented 4 years ago

bufferChannel -> 異步的狀態 c := make(chan bool,1) unbufferChannel -> 同步狀態 c := make(chan bool)

hic003cih commented 4 years ago

異步 -> 使用者將請求放入消息隊伍,並可以關閉瀏覽器,然後也不會覺得整個畫面卡住 不用等待server回應,就可執行別的請求

同步 -> 使用者必須等所有動作都完成後,才能關閉頁面,畫面會卡住 需等待server回應,才可以執行接下來的動作

異步範例 -> 避免短時候大量資料寫入sql,會先將請求放入緩存(消息隊伍),再慢慢的將資料寫入sql 異步可以快速回應使用者的請求,但寫入sql的時間並不會因為異步而減少 例如:sql寫入需要1個小時,使用異不只是讓使用者可以先去做別的事 寫入sql還是需要1個小時

同步範例 -> 銀行的轉帳系統(保證資料的完整性),對DB的保存和操作都是用同步,其餘情況優先使用異步