#include #include #include // デュアルコア有効性テストプログラム // 2007.9.23 野田篤司 // 注意:このプログラムは、失敗例としてアップしたものです。 // デュアルコアを使っても、全く役に立ちませんので注意してくだい。 // 使いかた: // $ g++ -o testDualCore02 testDualCore02.cpp -lpthread // $ ./testDualCore02 long i,j; double a,b; pthread_t mythread; pthread_mutex_t mutex; long n; void *thread_func( void *arg ) { pthread_mutex_lock(&mutex); while (j < n) { b += 4.0 / double(j); j += 4; } pthread_mutex_unlock(&mutex); } main() { a = 4.0; b = 0.0; i = 3; j = 5; n = 1000000000; system("date"); pthread_mutex_init(&mutex,NULL); pthread_create( &mythread, NULL, thread_func, NULL ); while (i < n) { a -= 4.0 / double(i); i += 4; } pthread_mutex_lock(&mutex); printf("i:%d j:%d a:%lf b:%f p:%f\n",i,j,a,b,a + b); system("date"); }