基本概念就是,业务线程输出日志(主要是增加日志队列节点),然后副线程负责日志队列的消耗。这样做的好处就是不会因为日志输出而造成线程阻塞。代码很简单,如下://code by lichmama from cnblogs.com#include #include #include #include #i...
分类:
编程语言 时间:
2014-08-18 16:00:22
阅读次数:
239
一、同步加载与异步加载的形式 1. 同步加载 我们平时最常使用的就是这种同步加载形式: <script src="http://yourdomain.com/script.js"></script> 同步模式,又称阻塞模式,会阻止浏览器的后续处理,停止了后续的...
分类:
编程语言 时间:
2014-08-18 12:41:44
阅读次数:
188
第五章的内容,实现一个echo服务器和对应的客户端,主要收获:0. TCP socket编程主要基本步骤1. SIGCHLD信号含义(子进程退出时向父进程发送,提醒父进程对其状态信息进行一个获取),waitpid 和 wait在使用上的差异,前者可以配置参数设定为非阻塞方式调用,更加灵活。2. 信号...
分类:
系统相关 时间:
2014-08-17 15:26:12
阅读次数:
337
我所知道的Scala持久层框架有: 1、Slick? 2、Squeryl 3、Anorm(Play的持久层) 4、ScalaActiveRecord?(基于Squeryl之上) 5、circumflex-orm web框架的话 1、Spray(build on akka,完全异步,非阻塞,非常有...
分类:
其他好文 时间:
2014-08-16 21:13:41
阅读次数:
180
多播:很好 但是 有 风险
广播 是有一定 风险的,如果所有的数据 都进行广播的话,有些人 并不像收到
这些数据,就会造成 网络 阻塞。 网络 风暴 后果不堪设想,所有的数据都阻塞,
就像北京的 堵车一样,谁也 别想发送数据。 所以在 广域网里,基本很少用到
广播,就算 用到 的话 也会很小心的。...
分类:
编程语言 时间:
2014-08-16 21:09:31
阅读次数:
170
异步下载:支持应用程序在后台下载数据,在等待下载完成的过程中不会阻塞代码的运行同步下载:调用一个方法的时候,如果该方法的返回依赖于它的功能是否完成,则称该方法为同步方法。必须下载完成才能进行下一步。会出现卡壳现象。同步下载几种形式: NSURL *url=[NSURL URLWithStrin...
分类:
其他好文 时间:
2014-08-16 18:24:20
阅读次数:
206
最近在学习IO模型,就突然想到了epoll属于哪个IO模型这个问题。要研究这个问题,我们首先要知道有哪些常用的IO模型。
常见的IO模型如下:
阻塞IO:程序阻塞直到IO可用。最简单的IO模型,你平时调用的recvfrom接收函数就属于这个模型。
非阻塞IO:程序调用IO函数后立刻返回,无论当前IO可用不可用。如果你把套接字设置成了非阻塞模式,那么你使用的就是这个模型了。
复用IO:程序阻...
分类:
其他好文 时间:
2014-08-16 16:33:00
阅读次数:
201
我们来考虑一个情形,你跟千千万万个玩家是魔兽世界的超级粉丝,每周末准时组团打boss。每当周末游戏服务器就亚历山大,因为起码几十万用户同时在线。如果用我们的多线程阻塞服务器作为游戏服务器是否可行呢?先分析游戏服务器有哪些特点:
① 网络游戏并非像网页一样,打开一旦下载完就可以关闭连接结束。网游必须是有一个持久有状态的连接,每一个客户端都需要跟服务器存在一个持久的连接,以便快速及时发送消息。而随...
分类:
其他好文 时间:
2014-08-15 23:52:39
阅读次数:
518
项目有这样的需求, 要求窗口加载一揽子图片,为了不让UI阻塞太久,采用异步读取后绑定显示的方案. 图片的下载应该采用并发的过程(等待网络响应会很耗时,一张一张的下载,等待时间太长) 图片的下载不能占用过多的线程数,应有个阀值(图片不是核心业务,不能占用那么多资源) 在图片加载的过程中,如果用户有操作...
分类:
其他好文 时间:
2014-08-15 23:44:10
阅读次数:
393
一般情况下我们使用的都是hiredis的同步通信机制,这种机制下每当你向服务器发送命令请求,程序都会阻塞直到收到服务器的回复并处理。而如果采用异步通信,程序就不需要阻塞等待服务器的回复,而是直接继续执行后边的代码,当服务器回复到来后由程序中预先注册的回调函数来处理回复。...
分类:
其他好文 时间:
2014-08-15 14:44:18
阅读次数:
905