今天看到一系列有趣的文章:1, 2, 3
主要是這樣的,作者聽到有人說像是 int, float 這些基本的形態都是 atomic ,也就是說只要是 int 的變數就不能能同時有兩個以上的執行入對他做寫入/讀取動作(至少一個操作是寫入)。所以作者寫了以下的程式來驗證這個說法:(篇幅關係,我刪減了一些程式中錯誤檢查部分)
include #include #include #include #include #include #include #include #define INC_TO 1000000 // one million... int global_int = 0; pid_t gettid( void ) { return syscall( __NR_gettid ); } void *thread_routine( void *arg ) { int