摘要: 鱼还是熊掌:浅谈多进程多线程的选择yah99wolf于星期二, 20/07/2010 - 09:15提交关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。经常在网络上看到有的XDJM问“多进程好还是多线程好?”、“Linux下用多进程还是多线程?”等等期望一劳永逸的问题,我只能说:没有最好,只有更好。根据实际情况来判断,哪个更加合适就是哪个好。我们按照多个不同的维度,来看看多线程和多进程的对比(注:因为是感性的比较,因此都是相对的,不是说 阅读全文
posted @ 2013-08-27 21:55 chasu 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 主动关闭的Socket端会进入TIME_WAIT状态,并且持续2MSL时间长度,MSL就是maximum segment lifetime(最大分节生命期),这是一个IP数据包能在互联网上生存的最长时间,超过这个时间将在网络中消失。MSL在RFC 1122上建议是2分钟,而源自berkeley的TCP实现传统上使用30秒,因而,TIME_WAIT状态一般维持在1-4分钟。 TIME_WAIT状态存在的理由:1)可靠地实现TCP全双工连接的终止 在进行关闭连接四路握手协议时,最后的ACK是由主动关闭端发出的,如果这个最终的ACK丢失,服务器将重发最终的FIN,因此客户端必须维护状态信息允许它.. 阅读全文
posted @ 2013-08-27 21:33 chasu 阅读(180) 评论(0) 推荐(0) 编辑
摘要: C程序一般分为1.程序段(text):程序段为程序代码在内存中的映射.一个程序可以在内存中多有个副本.2.文字常量区:常量字符串就是放在这里的。3.初始化过的数据(data):在程序运行之初已经对变量进行初始化的.全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。4.未初始化过的数据(bss):在程序运行初未对变量进行初始化的数据。6.堆栈(stack):存储局部,临时变量,在程序块开始时自动分配内存,结束时自动释放内存.存储函数的返回指针.当函数被调用时,它们被压入栈;当函数返回时,它们就要被弹出堆栈。7.堆 阅读全文
posted @ 2013-08-27 20:40 chasu 阅读(972) 评论(0) 推荐(0) 编辑
摘要: 【转】http://blog.csdn.net/v_JULY_v/article/details/6279498海量数据处理:十道面试题与十个海量数据处理方法总结作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题。有任何问题,欢迎随时交流、指正。出处:http://blog.csdn.net/v_JULY_v。第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。 首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^ 阅读全文
posted @ 2013-08-27 16:50 chasu 阅读(243) 评论(0) 推荐(0) 编辑
摘要: C++堆、栈、自由存储区、全局/静态存储区和常量存储区收藏(转)2013-05-21 20:45107人阅读评论(0)收藏举报一、一个由c/C++编译的程序占用的内存分为以下几个部分: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放(malloc/free, new/delete),若程序员不释放,程序结束后可能由操作系统回收。注意它与数据结构中的堆石两回事,分配方式倒是类似与链表。其中有malloc/free分配释放的也可以叫自由存储区。 3、全局区(静态存储区)(stati 阅读全文
posted @ 2013-08-27 11:40 chasu 阅读(235) 评论(0) 推荐(0) 编辑