排他制御を考慮していない並列処理 次のプログラムは、Workerクラスのdo_something()内で"*"を10個印字した後、改行している。ただし、別なスレッドが"+"を印字するinterrupt()を呼び出しているため、"*"と"+"が混じってしまう。 #include <iostream> #include <boost/thread.hpp> class Worker{ public: void do_something(){ while(true){ for(int i = 0 ; i < 10 ; i++){ boost::this_thread::sleep(boost::posix_time::milliseconds(100)); std::cout << "*" ; } std::cout << std::endl; } } void interrupt(){ std