![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 60
码农小张
这个作者很懒,什么都没留下…
展开
-
控制connect超时时间(linux版本和Windows版本)
客户端在连接服务器时,可能会出现问题,导致三次握手无法完成,持续重试,表现在客户端程序的行为就是卡在connect调用上无法返回,这样的客户端是非常不友好的。大致的原理就是设置socket为非阻塞,这是connect会马上返回,之后通过select控制超时,并通过FD_ISSET()检测,再通过getsockopt检测SO_ERROR,最后再把socket设置为阻塞模式。之后就可以愉快地通讯了。原创 2015-03-24 00:59:42 · 864 阅读 · 0 评论 -
explicit的作用
在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上。再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。但稍微留心一下就会发现现有的MFC库或者C++标准库中的相关类声明中explicit出现的频率是很高的。了解explicit关键字的功能及其使用对于我们阅读使用库是很有帮助的,而且在编写自己的代码时也可以尝试使用。既然C++语言提供这种特性,转载 2015-07-29 20:52:02 · 2885 阅读 · 0 评论 -
银行窗口排队叫号系统实现
这是一个模拟银行窗口排队叫号调度系统,参考了网上两篇文章,一篇java的和一篇linux c++的,然后我在windows下实现了它,开发工具是vs2008.在文章最后我会给出直接可编译可执行代码。Java版参考:http://blog.csdn.net/zhangxiaoxiang/article/details/6294132 Linux c++版参考:http://blog.csdn.net原创 2015-07-23 20:16:34 · 23938 阅读 · 0 评论 -
c++线程池
共享一份线程池的代码: http://download.csdn.net/detail/luomoshusheng/8957489 注解:CRunnable是基类,所有Thread继承于它;CThread是CWorker的父类,CWorker是实际的工作线程;CManage是管理线程池的,维护三链表,task,idle,busy。同时注意线程数,任务数和minThread与maxThread的关原创 2015-08-04 00:16:20 · 1027 阅读 · 0 评论 -
VC++6.0调试篇:定位临界区(critical section)导致的死锁
前言:今天人家问死锁怎么调试,除了记日志似乎还没掌握其他方法,于是度娘了一下,找到一篇好文章。在多线程程序的开发中,因为效率的关系,通常会选用CriticalSection作为同步的机制。初学者在设计开发多线程程序时经常会出现死锁的 情况,昨天就看到有个哥们在发帖问这个(明显是郁闷中阿)。这里通过一个例子说下不用Intel的Thread Checker,Thread Profiler,也不用强大的W转载 2015-09-08 00:14:32 · 682 阅读 · 0 评论 -
vector的clear()的内部过程与析构函数调用
总结一下:vector中存储了对象的指针,调用clear后,并不会调用这些指针所指对象析构函数,因此要在clear之前调用delete;如果vector存储的是对象,调用clear后,自建类型的对象(int之类的)直接删除,若是外部类型,则调用析构函数。class Test { public: Test() { cout<<"Test cons"<<endl;} ~T原创 2015-09-05 17:17:35 · 11025 阅读 · 0 评论 -
浅谈C++中的单例模式
单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。 单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到转载 2015-09-07 00:48:07 · 406 阅读 · 0 评论 -
海量数据最小k个数
从大量(海量)数据中查找最小的k(k一般比较小)个数,这是笔试中常考的题目。 如果是从少量数据中查找最小的k个数据,并且允许修改允许修改原始数据,侧利用Partition()函数,在O(N)的时间复杂度,O(1)的空间复杂度就可以找到最小的k个数据。 从大量数据中查找最小的k个数,我们可以利用一个容器先存储前k个数据,然后从数据中读取下一个数,判断该数是与容器中最大的数的大小,如果该数较大转载 2015-09-07 00:42:36 · 710 阅读 · 0 评论