![async](https://www.modernescpp.com/wp-content/uploads/2016/05/async.png)
Asynchronous Function Calls
/
0 Comments
std:.async feels like an asynchronous function call. Under the hood std::async is a task. One, which…
![tasksEng](https://www.modernescpp.com/wp-content/uploads/2016/05/tasksEng.png)
Tasks
Tasks were one of the latest additions to the C++11 standard. They give you a better abstraction than…
![conditionVariable](https://www.modernescpp.com/wp-content/uploads/2016/05/conditionVariable.png)
Condition Variables
Condition variables allow us to synchronize threads via notifications. So, you can implement workflows…
![threadLocal](https://www.modernescpp.com/wp-content/uploads/2016/05/threadLocal.png)
Thread-Local Data
By using the keyword thread_local, you define the thread local data. Thread-local can easily be…
![callOnce](https://www.modernescpp.com/wp-content/uploads/2016/05/callOnce.png)
Thread-Safe Initialization of Data
The story is simple if the data is not modified when shared between threads. The data has only to be…
![deadlockResolved](https://www.modernescpp.com/wp-content/uploads/2016/05/deadlockResolved.png)
Prefer Locks to Mutexes
If the previous post showed something, it's that you should use mutexes with great care. That's why you…
![Deadlock](https://www.modernescpp.com/wp-content/uploads/2016/05/Deadlock.png)
The Risks of Mutexes
The usage of mutexes seems extremely simple. There is a critical section in the code that a single thread…
![readerWriterLocks](https://www.modernescpp.com/wp-content/uploads/2016/05/readerWriterLocks.png)
Reader-Writer Locks
With C++14 came reader-writer locks. The idea is straightforward and promising. Arbitrary reading threads…
![readerWriterLocks](https://www.modernescpp.com/wp-content/uploads/2016/05/readerWriterLocks.png)
Source Code Repository
I created a repository for the source code. It's on GitHub and has the name ModernesCppSource:https://github.com/RainerGrimm/ModernesCppSource.git
This…