网络IO的本质是socket的读取,socket在linux系统被抽象为流,IO可以理解为对流的操作。刚才说了,对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。所以说,当一个read操作发生时,它会经历两个阶段: 第 ...
分类:
其他好文 时间:
2017-07-21 19:51:23
阅读次数:
191
Java New IO 简称 nio,在jdk1.4提供了新的api,有如下特性: 1.为所有原始类型提供缓存支持 2.字符集编解码解决方案 3.Channel:新的原始io抽象 4.支持锁和内存映射的访问接口 5.提供多路(non-bloking)非阻塞式多路高伸缩性网络io 原始io与nio比较 ...
分类:
编程语言 时间:
2017-07-11 21:10:33
阅读次数:
176
linux的内核将全部的外部设备都看作一个文件来操作,对一个文件的读写操作会调用内核提供的系统命令 ,返回一个file descriptor(fd。文件描写叙述符)。而对一个socket的读写也会有对应的描写叙述符。成为socketfd (socket描写叙述符),描写叙述符就是一个数字,它指向内核 ...
分类:
Web程序 时间:
2017-07-09 23:09:20
阅读次数:
204
参考答案:1.gzip压缩优化2.expires缓存优化3.网络IO事件模型优化4.隐藏软件名称和版本号5.防盗链优化6.禁止恶意域名解析7.禁止通过IP地址访问网站。8.HTTP请求方法优化。9.防DOS攻击单IP并发连接的控制,与连接速率控制。10.严格设置Web站点目录的权限。11.将Nginx进程以及站..
分类:
其他好文 时间:
2017-07-07 10:30:26
阅读次数:
327
引用自:http://kimi.it/259.html Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一 ...
分类:
系统相关 时间:
2017-07-05 21:21:08
阅读次数:
271
原文链接:https://wongxingjun.github.io/2016/05/11/Spark-Job%E8%B0%83%E4%BC%98-Part-1/ Spark应用的执行效率是所有程序员需要关心的问题,单纯从代码层面去了解和优化明显是不够的,本文介绍Spark的底层执行模式,并给出了一 ...
分类:
其他好文 时间:
2017-07-03 22:43:06
阅读次数:
290
1.阻塞I/O模型 我去面馆吃面,点了碗面条,我也不知道做面条需要多久,也不敢出去,只能在那里坐着等。等值师傅做完面,我吃完面条后,再去逛街。这里的吃面就是I/O操作。 2.非阻塞I/O模型 我不甘心在这里等着无聊,我想这段时间继续逛商场,但是又怕面条做好了,所以,我逛一会就回来吧台看一眼!为了吃碗 ...
分类:
其他好文 时间:
2017-06-26 19:56:45
阅读次数:
271
Cocos2d-x从2.x版本号到上周刚刚才公布的Cocos2d-x 3.0 Final版,其引擎驱动核心依然是一个单线程的“死循环”。一旦某一帧遇到了“大活儿”,比方Size非常大的纹理资源载入或网络IO或大量计算,画面将 不可避免出现卡顿以及响应迟缓的现象。从古老的Win32 GUI编程那时起, ...
分类:
编程语言 时间:
2017-06-24 17:25:34
阅读次数:
303
最近开发一些东西,线程数非常之多,当用户输入Ctrl+C的情形下,默认的信号处理会把程序退出,这时有可能会有很多线程的资源没有得到很好的释放,造成了内存泄露等等诸如此类的问题,本文就是围绕着这么一个使用场景讨论如何正确的终止正在运行的子线程。其实本文更确切的说是解决如何从待终止线程外部安全的终止正在 ...
分类:
编程语言 时间:
2017-06-15 14:22:59
阅读次数:
206
转载请注明源出处:http://www.cnblogs.com/lighten/p/6964702.html 1.前言 计算机的IO操作一直都是比较重要的一环,IO顾名思义,就是输入输出流。不管是磁盘IO还是网络IO,数据流转就离不开IO,理解Java的IO操作类很重要,本文介绍IO的抽象父类Inp ...
分类:
编程语言 时间:
2017-06-08 21:35:31
阅读次数:
242