我在一个线程中分配一些内存。当我调用pthread_detach(pthread_self());时,由Linux分配给这个线程的内存应该在线程被pthread_exit();或pthread_cancel()终止后被释放。另外,如果线程中的其他函数分配了一些空间,我是否也应该释放这些空间,即使线程被终止并在线程中调用了pthread_detach(pthread_self());?void *test_thread(void * a
pthread_exit退出线程。因此,pthread_join将返回;但是,与pthread_join不同的是,detach做了什么?例如,我创建了一个线程,假设该线程已完成,我希望完全终止该线程,以便稍后可以重新创建它。使用哪个更好。pthread_join还是pthread_detach?所以执行的顺序是pthread_join(); or pthread_detach();
我已经创建了大约20个std::线程,但是我的系统监视器( Maveriscks和它的调试器LLDB)只向我显示了五个线程。怎么啦?为什么如果我尝试创建20个线程,而得到5个线程呢?set_exception( std::current_exception() ); } thr[ i ].detach(); for (auto & pr : prm) p