|
最近在研究gmain.c時,經(jīng)常碰到g_atomic_int_inc,查看源碼時,發(fā)現(xiàn)基本上是由匯編語句寫的,其功能是對一個變量加1。查看API手冊才知道這就是所謂的原子操作符運算。
原子操作,設(shè)計它的主要目的就是該操作未完成前絕不會被其它線程或任務(wù)或中斷打斷。也就說,它是最小的執(zhí)行單位,不可能有比它更小的執(zhí)行單位,因此這里的原子實際是使用了物理學(xué)里的物質(zhì)微粒的概念。不過這種操作需要硬件的支持,所以他們幾乎都是用匯編實現(xiàn)的。
有了原子操作,我們就可以通過原子操作來處理臨界段,避免使用互鎖等操作,因為那會消耗很多指令周期。
|
|