volatile(ボラタイル)

private volatile int count_val = 0;

複数のスレッドから参照される可能性のあるメンバにつける。
これをつけると、コンパイラの最適化の対象にならない。メンバのRead/Writeを行う際に
必ずメンバ変数の実体にアクセスするようになる。
コンパイラの最適化を行うと、この変数の値がキャッシュメモリやレジスタに保持されてしまう。
その為、実体の値とキャッシュ値が異なる場合が発生する。
キャッシュを行わなくなるので、むやみに使い過ぎるとパフォーマンスの低下につながる。