[cpp] Update READMEs for C++ projects and examples

This commit is contained in:
Shaun Reed 2022-05-04 12:54:06 -04:00
parent 34f12250ab
commit 6dbac7559a
3 changed files with 35 additions and 6 deletions

View File

@ -2,12 +2,13 @@
```bash ```bash
shaunrd0/klips/cpp/ shaunrd0/klips/cpp/
├── algorithms # Examples of various algorithms written in C++ ├── algorithms # Examples of various algorithms written in C++
├── cmake # Example of using cmake to build and organize larger projects ├── cmake # Example of using cmake to build and organize larger projects
├── cryptography # Examples of encrypting / decrypting using ciphers in C++ ├── cryptography # Examples of encrypting / decrypting using ciphers in C++
├── datastructs # Collection of useful datastructures written in C++ ├── datastructs # Collection of useful datastructures written in C++
├── graphics # Examples of graphics projects written in C++ ├── graphics # Examples of graphics projects written in C++
├── patterns # Examples of various design patterns written in C++ ├── multithreading # Basic multithreading examples in C++
├── patterns # Examples of various design patterns written in C++
└── README.md └── README.md
``` ```

View File

@ -15,6 +15,9 @@ project(
LANGUAGES CXX LANGUAGES CXX
) )
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
add_compile_options("-Wall")
add_subdirectory(conditions) add_subdirectory(conditions)
add_subdirectory(deadlock) add_subdirectory(deadlock)
add_subdirectory(livelock) add_subdirectory(livelock)

View File

@ -0,0 +1,25 @@
# Multithreading
A few basic multithreading programs written in C++ while learning about
the [concurrency support library](https://en.cppreference.com/w/cpp/thread)
```
klips/cpp/multithreading
.
├── conditions # Using condition_variable to control job execution flow
├── deadlock # Example of problem and solution for deadlocks
├── livelock # Example of problem and solution for livelocks
├── race-condition # Example of problem and solution for race conditions
└── README.md
```
We can build the examples with the following commands.
```bash
cd /path/to/klips/cpp/multithreading/
mkdir build && cd build
cmake .. && cmake --build .
ls bin/
multithread-conditions multithread-deadlock multithread-livelock multithread-race-condition
```