
c++
纵使微茫如烟
如卷承过往,似梦驻流光.
展开
-
我写多线程踩的那些坑
1.在做多线程时应当做接口互斥。2.多线程中使用block和non-block混合使用可以提高效率。3.在混合使用block和non-block时应当注意block时不应拥有mutex. //std::find_if(std::begin(set.fd_array), std::end(set.fd_array), [&](SOCKET val) {if (val &g...原创 2018-11-25 23:13:32 · 564 阅读 · 0 评论 -
Try-catch的代价
#include<iostream>#include<time.h>#include<windows.h>#define nullptr NULL#define TEST 10000000void test_noTry(unsigned count_){ volatile unsigned count = count_; while(coun...原创 2018-11-25 14:23:41 · 308 阅读 · 0 评论 -
SO_RCVTIMEO , MSG_WAITALL
test SO_RCVTIMEO and MSG_WAITALL 1.首先两者都运用于阻塞的情景下,对nonblock的fd不起作用。2.SO_RCVTIMEO, socket选项,作为getsockopt, setsockopt的参数。见下 figure1. SO_RCVTIMEO选项可以指定阻塞调用的超时时长,SO_RCVTIMEO的影响的函数read, readv, recv,...原创 2019-02-23 16:03:43 · 959 阅读 · 0 评论 -
Server design浅析
服务器的设计方案: (1)派生子进程: parent process send socket to child process. 其实也是可以父进程和子进程共享一个数据结构(socket list...),来进行传递socket. (2)(3)(4)中的listenfd的进程间的传递: 有点和windows的句柄表的作用有点像....原创 2019-02-26 12:29:33 · 210 阅读 · 0 评论 -
http中的SIGPIPE处理
问题描述:在我实现http1.1 server的过程中,当客户端和浏览器存在数据传输时,如果客户端断开连接(浏览器刷新或关闭),我的服务器就总是崩溃。求思:程序异常退出,首先查看进程退出码echo $?然后分析退出码结果分析:由此可知,我的进程异常退出的原因是由于客户端连接服务器传数据过程中,客户端断开连接,导致s...原创 2019-03-16 12:23:53 · 218 阅读 · 0 评论 -
类模板的模板参数
类模板的模板参数 1.函数模板是不支持模板参数的,而类模板支持模板参数。 2.区别: 不使用模板参数: Stack<int, std::vector<int> > vStack; 使用模板参数: Stack<int, std::vector> vStack; ...原创 2019-05-22 21:16:12 · 1926 阅读 · 0 评论 -
template --- decay
对于非引用类型的参数,在实参演绎的过程中会出现从数组到指针(array-to-pointer)的类型转变,称之为退化(decay)test.h#include<iostream>#include<typeinfo>template<class T>void ref(T& t) { std::cout << typeid(t).n...原创 2019-05-22 21:33:00 · 270 阅读 · 0 评论 -
指针和数组
指针和数组.念叨了这么多年的指针,咱来看看指针的定义:指针(K&C): 指针是一种保存变量地址的变量. ps: 这里的指针是指的指针类型变量,简称指针或指针变量. ps: 注意!标准中把指针的类型称为 "(指向)T的指针"在ANSI C89中有这样的描述: 1.指针类型可以由函数类型,对象类型或者不完整类型派生。 2.派生指针类型的类型称为引用类型,从引用类型构造指针...原创 2019-05-23 18:03:56 · 215 阅读 · 0 评论