有乙個頁面需要記錄開啟次數,存在memcache裡,正常的做法是:
$count = $memcache->get($key);
$count++;
$memcache->set($key,$count);
但是如果有併發,就可能會有多個使用者同時觸發這個操作, 幸好memcached裡有這樣乙個api:
public int memcached::increment ( string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )
todo:memcached 源** increment
原子性,原子操作
舉個例子 a想要從自己的帳戶中轉1000塊錢到b的帳戶裡。那個從a開始轉帳,到轉帳結束的這乙個過程,稱之為乙個事務。在這個事務裡,要做如下操作 從a的帳戶中減去1000塊錢。如果a的帳戶原來有3000塊錢,現在就變成2000塊錢了。在b的帳戶裡加1000塊錢。如果b的帳戶如果原來有2000塊錢,現在...
原子變數與原子操作
1.原子操作的速度要快於臨界區,event,互斥量,如果多個執行緒同時寫乙個變數時,最方便的就是原子操作。原子操作函式,解決多執行緒安全 2.原子變數也是為了解決執行緒衝突問題,如果兩個執行緒同時訪問同乙個變數,乙個執行緒改變了這個變數,另乙個執行緒就會出現一些bug。3.release和debug...
原子和非原子屬性
一 原子和非原子屬性 1.oc在定義屬性時有nonatomic和atomic兩種選擇 atomic 原子屬性,為setter方法加鎖 預設就是atomic nonatomic 非原子屬性,不會為setter方法加鎖。2.nonatomic和atomic的對比 atomic 執行緒安全,需要消耗大量的...