Q: TCP 三次握手完成后,客户端迟迟不发送请求,那服务端保持连接多久呢?如果立即释放连接,说不定客户端请求已经在路上了。如果不释放,服务端又一直干等着,就会浪费内存资源。
A:
Q: 类文件相互 include?
A: 这种类依赖关系是不好的,应避免这种设计。正确的类依赖关系应该是像一颗树那样,具有层次关系。
Q: 多线程环境下,控制台打印混乱,输出被截断?
A: 加一个互斥锁。但是,可能先 printf 和后 printf 同时阻塞,但后 print 的得到锁,然后输出,导致次序混乱。
可以开一个线程,把打印内容放到队列里面。但是,遇到异常时最后一条内容还没打印程序就退出了。
自己再写一个安全退出函数,判断队列是否为空,为空才退出,否则等待。
Q: 经常忘记 delete,导致内存泄露?
A:
Q: exit 导致最后一条日志没有输出?
A: exit 太快,要等待日志写入完成。可以判断日志队列是否为空,为空才退出,否则等待日志线程写完。
Q: 多线程环境很难调试?
A:
Q:如何获取实际 backlog 的大小?
A:无法获取
Q: 队列日志,读一条消息,就打开、关闭文件,要是有大量日志,会不会造成写入缓慢?
A:
Q: 类 B 回调类 A 的成员函数?
A:
Q: 在大量短连接且建立连接就立即发送数据的情况下,IO 多路复用对并发处理能力有帮助吗?
A:
Q: 当服务端空闲时,把线程挂起还是销毁?空闲时,线程池挂起还是销毁?
A:
Q: 程序当中有没有办法判断 TCP 半连接和全连接队列的大小呢?
A: 没有办法。
Q: 如何获取任务执行完毕后的返回值?也就是异步执行返回值?
Q: Webbench 压测为 0?
A: 服务端主动关闭 socket 了才算一次。