我發現從std :: thread訪問tcp::socket
會導致程序終止。 以下是來自boost的示例程序。 http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/example/echo/blocking_tcp_echo_server.cpp 編譯它:g++ blocking_tcp_echo_server.cpp -std=c++11 -lboost_system -lboost_thread -pthread
C++ 11線程在訪問boost時崩潰:: asio :: ip :: tcp :: socket
到目前爲止,everthing正常工作。 但是,如果你用std :: thread(和#include)替換boost :: thread,程序在訪問sock成員時會崩潰(終止)(socket::read_some()
)。
錯誤消息:在沒有活動異常的情況下終止調用。
任何想法?
它的工作原理。謝謝。 看起來我不應該找出C++ 11庫和Boost庫之間的區別,以避免類似的問題。 – avhacker
@avhacker請注意,Boost.Thread的這種行爲現在已被棄用:http://www.boost.org/doc/libs/1_54_0/doc/html/thread/thread_management.html#thread.thread_management.thread.destructor –