2 cpu core的情況下,一個(gè)線程alloc對(duì)象另一個(gè)線程free對(duì)象內(nèi)存,可能會(huì)導(dǎo)致一個(gè)線程里有少量的CAS失敗,但是與pthread_spin_lock機(jī)制相比,耗時(shí)仍然非常少。究其原因,pthread_spin_lock會(huì)受到鎖粒度的的影響,假如Alloc需要耗時(shí)0.00023秒的話,那么pthread_spin_lock就可能需要消耗同樣的時(shí)間。而CAS是一種盡力處理的機(jī)制,即使在某個(gè)線程里發(fā)生了一個(gè)CAS失敗,一方面程序會(huì)以一個(gè)很細(xì)的粒度馬上重試,另一方面也表明與此同時(shí)另一個(gè)線程成功執(zhí)行了一次CAS操作。