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.

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-67276ca66479d677919658/]

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-67276ca6647a4554060481/]

Execution result

Threads are executed in an irregular way one by one.

 

 

 

 

 


 

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

Exit mobile version