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
完成了这项工作。你不需要做任何其他事情。