请问下:为什么不去掉if判断条件,则无法输出"22222",去掉,则可以呢?
//if (is_parse == 0) {
zmq::context_t ctx;
sock = new zmq::socket_t(ctx, zmq::socket_type::pub); //这里会挂起一起常驻内存的线程
sock->bind("tcp://*:8008");
printf("11111, %p\n", sock);
fflush(stdout);
//}
printf("22222\n");
fflush(stdout);
有 if
zmq::context ctx
会析构。看看这个析构函数都干了啥。
你可以把这个声明放 if 外面试试。