Site icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Try condition_variable using C++Builder(C++11).

Author: h.mohri

std::condition_variable is a class for waiting for thread execution until the condition is satisfied.
Used in combination with std::mutex.

I tried the wait() function in std::condition_variable.
This is combined with std::unique_lock<std::mutex>.

I thought of the following specifications.
2017-08-1014551.png
As shown in the figure, create multiple threads.
All threads are in Wait state.
Then let the threads run one by one.

Make mutex and condition_variable management class.

The created thread is waited using condition_variable.
Sleeping for 1 second immediately after passing Wait.
Then execution request is made to the next thread.

turn_thread.h
[crayon-6810e1977edd2669213628/]

Thread creation function

It is a button event of C++Builder.
We create 10 threads, but they are all waited.
Thereafter, to perform one single thread start_and_join() function.

Unit1.cpp
[crayon-6810e1977edd8057017062/]

Execution result

Threads are executed in an irregular way one by one.

 

 

 

 

 


 

In C++Builder(C++11), use timed_mutex.

Exit mobile version