1. 程式人生 > >Boost ptree 解析json字串 多執行緒下程式crash

Boost ptree 解析json字串 多執行緒下程式crash

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

今天一個service即將釋出之前,用壓力測試試了一下,很快就segmentation fault,嚇了一身冷汗。

三小時候確定是因為最近幾天引入boost::ptree來將解析json的時候出問題。重新自己實現解析程式碼後,問題解決。

單獨開一個工程,在多執行緒的情況下呼叫,錯誤重現。下面的程式碼時不時就會crash。

class testBind {public:    void testFunc() {        cout<<"ok"<<endl;        string str = "{\"51\":1,\"50\":1}";        stringstream
stream;        stream<<str;        ptree tree;        read_json(stream, tree);    }};/* *  */int main(int argc, char** argv) {    testBind tb;    boost::thread_group tg;    for
(int i = 0; i < 20; ++i) {        tg.add_thread(new boost::thread(boost::bind(&testBind::testFunc, &tb)));    }    int x;    cin >> x;    tg.join_all();    return 0;}


           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述