libevent源码深度剖析十——支持I/O多路复用技术张亮
Libevent的核心是事件驱动、同步非阻塞,为了达到这一目标,必须采用系统提供的I/O多路复用技术,而这些在Windows、Linux、Unix等不同平台上却各有不同,如何能提供优雅而统一的支持方式,是首要关键的问题,这其实不难,本节就...
分类:
其他好文 时间:
2014-05-16 08:58:03
阅读次数:
345
verilog设计进阶 时间:2014年5月6日星期二 主要收获: 1. 阻塞赋值与非阻塞赋值; 2.
代码测试; 3. 组合逻辑电路和时序逻辑电路。 阻塞赋值与非阻塞赋值: 1. 阻塞赋值"="(组合逻辑电路),非阻塞赋值"<="(时序逻辑电路); 2.
Verilog模块编程的8个原则: (1)...
分类:
其他好文 时间:
2014-05-16 08:03:45
阅读次数:
366
在jdk 的API中提供了一个字符串的阻塞队列 :class BoundedBuffer {
final Lock lock = new ReentrantLock(); final Condition notFull =
lock.newCondition(); final Con...
分类:
其他好文 时间:
2014-05-16 05:11:43
阅读次数:
323
1.
非阻塞I/O低速系统调用时可能会使进程永远阻塞的一类系统调用,包括以下调用:(1)某些文件类型你(网络socket套接字、终端设备、管道)暂无可使用数据,则读操作可能会使调用者永远阻塞(2)如果数据不能立即被(1)中文件类型接受,则写操作会使调用者永远阻塞(3)某些进程间通信函数非阻塞I/O使...
分类:
其他好文 时间:
2014-05-15 16:22:43
阅读次数:
380
异步编程(Asynchronous Programming)
异步编程与我们所看过的其他并行编程形式有一些不同,讨论的其他主题可以有大量的线程并行运行,可以完全利用系统中可用的处理器;而在异步编程中,需要避免阻塞线程,我们在这一章的第一节“线程、内存、锁定和阻塞”中已经对阻塞线程的概念有所了解了。阻塞的线程是不能工作的线程,因为它需要等待其他任务的完成;线程等待的通常任务是操作系统执行的输...
分类:
其他好文 时间:
2014-05-15 12:23:35
阅读次数:
354
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果...
分类:
其他好文 时间:
2014-05-15 10:57:24
阅读次数:
223
nodejs是一个通过v8引擎解析javascript的服务器平台,并不是js框架。V8是为google开源的js引擎,chrome就是用的他,据大牛们介绍,V8直接把js编译成机器码,而不是脚本解释执行,所以运行速度非常快。Nodejs之后我就简称Node了,使用c++写的。基于事件驱动,非阻塞IO模型,也就..
分类:
Web程序 时间:
2014-05-15 08:32:33
阅读次数:
434
前段时间有个需求在springmvc mapping的url跳转前完成一个统计的业务。显然需要进行异步的处理,不然出错或者异常会影响到后面的网页跳转。异步的方式也就是非阻塞式的,当异步调用成功与否程序会接着往下执行,不必等到输入输出处理完毕才返回。
主要用到httpasyncclient-4.0.1.jar,httpclient-4.3.2.jar,httpcore-4.3.2.jar,http...
分类:
编程语言 时间:
2014-05-15 06:37:55
阅读次数:
359
/*所谓的「阻塞」,是指当一个数据库会话中的事务,正在锁定其他会话事务想要读取或修改的资源,造成这些会话发出的请求进入等待的状态。SQLServer默认会让被阻塞的请求无限期地一直等待,直到原来的事务释放相关的锁,或直到它超时(根据SETLOCK_TIMEOUT)、服务器关闭、进程被..
分类:
数据库 时间:
2014-05-14 16:58:48
阅读次数:
309
1、select for update2、外键没有创建索引 (1)主表上有频繁的删除操作
(2)主键上有频繁的修改操作
(3)业务上经常会出现主表和从表进行关联查询当第一个和第二个条件操作的时候,主表会在从表上创建一个锁定,以保证主表主键的修改不会导致从表的数据在引用上不会出现问题。如果经常对主表的...
分类:
数据库 时间:
2014-05-13 20:00:24
阅读次数:
403