线程使用C++11线程实现
互斥量使用pthread线程库实现
thread::run()
为什么不直接运行m_cb而是创建一个function对象cb再运行cb?
m_cb
: 在 cb.swap(thread->m_cb)
后,m_cb
变为空,确保主线程或者其他线程不能再访问 m_cb
,避免了不必要的共享访问。m_cb
上操作,而 m_cb
在执行过程中被修改或销毁,可能导致未定义行为cb
是 run()
内部的局部变量,与 Thread
对象的生命周期无关