2009-11-16から1日間の記事一覧

マルチスレッドのvolatile

ありがちダメなコードのダメな理由を書くコーナー。 現象。 C99+POSIX(SUSv3)のソースコード(tmp.c) #include <stdlib.h> #include <stdio.h> #include <pthread.h> volatile int count = 0; int const COUNT_PER_THREAD = 0x100000; int const THREAD_NUM = 0x10; void* work(void* arg) {</pthread.h></stdio.h></stdlib.h>…