std::counting_semaphore and std::binary_semaphore(C++)
https://stackoverflow.com/questions/3513045/conditional-variable-vs-semaphore
std::counting_semaphore and std::binary_semaphore(C++)https://stackoverflow.com/questions/3513045/conditional-variable-vs-semaphore