C++ join()阻止主线程的继续

C++ join()阻止主线程的继续,c++,multithreading,C++,Multithreading,我希望能够从程序中的主线程启动一个新线程。目前,我正在使用以下代码: std::thread acceptThread(Accept); acceptThread.join(); 但这会阻止主线程的继续,直到acceptThread被“完成”。我不要这个。我只想让它在不同的线程上运行,这样主线程就可以继续。我该怎么做 我想要的是一个接受传入连接的循环和一个发送/接收数据的循环。这些线程应该同时运行。join()的整个点是阻塞,直到其他线程退出。把它扔掉。你为什么一开始就加上它 std::线程接

我希望能够从程序中的主线程启动一个新线程。目前,我正在使用以下代码:

std::thread acceptThread(Accept);
acceptThread.join();
但这会阻止主线程的继续,直到
acceptThread
被“完成”。我不要这个。我只想让它在不同的线程上运行,这样主线程就可以继续。我该怎么做


我想要的是一个接受传入连接的循环和一个发送/接收数据的循环。这些线程应该同时运行。

join()的整个点是阻塞,直到其他线程退出。把它扔掉。你为什么一开始就加上它

std::线程接受线程(接受)

创建并启动一个新线程,该线程将调用“Accept”方法,这在您的情况下已经足够了

不需要第二行,join将阻止当前线程unil被联接的线程退出


我试过之后不知道它会这样做。好的,明白了!Thanks@Dries:你想做什么?只需创建
std::thread
对象就足以创建线程。只需创建一个单独的线程来运行while循环,该循环不会干扰应用程序的其余部分。我正在开发我的程序,以便能够接受多个连接(从msdn客户机/服务器winsock代码开始)@Dries:您已经通过创建
std::thread
完成了这项工作。你不需要做任何其他事情。