The boost::thread variable accepts a functional object that can be called without parameters (we provided one using boost::bind) and creates a separate thread of execution. That functional object is copied into a constructed thread of execution and run there. The return value of the functional object is ignored.
After that, we call the detach() function, which does the following:
- The thread of execution is detached from the boost::thread variable but continues ...