title: C++ communication between threads
body: <p>I have a couple classes that each open a different program in different threads and do/hold information about it using <code>CreateProcess</code> (if there's a more C++ oriented way to do this let me know-- I looked).</p>
  
  <p>Some of the classes are dependent on one of the other programs running. ie B must stop if A stopped. I made this code a while ago and my solution then, was having a class with static functions that run the various programs and static member variables that hold their "state". I was also using <code>CreateThread</code>.</p>
  
  <p>Looking back, this method seemed... fragile and awkward looking. 
  I have no idea if using such a "static class" is good practice or not (especially recalling how awkward initializing the state member variables). I'd like to perhaps make each class contain its own run function. However, the issue I am considering is how to let class B know if A has awkwardly stopped. They'd still need to know a way to be aware of each other's state. Note that I'd like to use <code>std::thread</code> in this rework and that I have little to no experience with multithreading. Thanks for any help.</p>