3996381d446fe7b32af09276522ae7a5e731c669
[iot2.git] / iotjava / iotrmi / C++ / sample / Test2.cpp
1 // mutex example
2 #include <iostream>       // std::cout
3 #include <thread>         // std::thread
4 #include <mutex>          // std::mutex
5
6 std::mutex mtx;           // mutex for critical section
7
8 void print_block (int n, char c) {
9   // critical section (exclusive access to std::cout signaled by locking mtx):
10   mtx.lock();
11   for (int i=0; i<n; ++i) { std::cout << c; }
12   std::cout << '\n';
13   mtx.unlock();
14 }
15
16 int main ()
17 {
18   std::thread th1 (print_block,50,'*');
19   std::thread th2 (print_block,50,'$');
20
21   th1.join();
22   th2.join();
23
24   return 0;
25 }