Теперь берем книжку C++ для чайников и читаем.
Ну и второе, использовать статическую переменную для остановки треда, это выстрел себе в ногу. При отимизиции и без вы словите разное поведение. Как минимум нужно пометить как volatile (при этом при использовании static переменная будет подвержена оптимизации, в итоге опять будет работать неправильно). А если использовать C++11, то уже лучше std::atomic_flag или std::atomic.