iOS多線程系列之GCD柵欄(barrier)實現同步鎖

  • 多線程編程中很容易出現資源競爭的問題,好比異步讀寫操做形成數據不一樣步。那麼解決這一問題多線程編程中提供了一種同步機制叫同步鎖。iOS中實現同步鎖機制的方案不止一種,這裏主要介紹一下強大的GCD給出的方案----柵欄(barrier) 下面直接上代碼:

圖片描述

多運行幾回看結果:
圖片描述編程

圖片描述

  • 能夠看出來dispatch_barrier_async 可以在異步併發隊列中對寫入操做單個任務進行資源控制,也就是說確保了在寫入任務操做3以前的併發任務肯定完成,而在寫入任務操做3以後的併發任務等待了寫入操做3完成以後才進行執行(即便讓寫入操做3的線程sleep了1秒的狀況下。更能清晰得出上述結論)。
  • 以上就是GCD之柵欄(barrier函數)實現同步鎖方案。若有不正確的地方,歡迎小夥伴指點,共同進步。
相關文章
相關標籤/搜索