iOS synchronized的作用

來源:互聯網
上載者:User

這個東西其實就是 一個加鎖。如果self 其他線程訪問,則會阻塞。這樣做一般是用來對單例 進行一個死結的保護

@synchronized(self) {

//something like this

   kGoableValue = _shareInstance;

}


一、當兩個並發線程訪問同一個對象object中的這個synchronized(self)同步代碼塊時,一個時間內只能有一個線程得到執行。另一個線程必須等待當前線程執行完這個代碼塊以後才能執行該代碼塊。

  二、當一個線程訪問object的一個synchronized(self)同步代碼塊時,其他線程對object中所有其它synchronized(self)同步代碼塊的訪問將被阻塞。

  三、然而,當一個線程訪問object的一個synchronized(self)同步代碼塊時,另一個線程仍然可以訪問該object中的除synchronized(this)同步代碼塊以外的部分。

  四、第三個例子同樣適用其它同步代碼塊。也就是說,當一個線程訪問object的一個synchronized(this)同步代碼塊時,它就獲得了這個object的對象鎖。結果,其它線程對該object對象所有同步代碼部分的訪問都被暫時阻塞。

  五、以上規則對其它對象鎖同樣適用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.