<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: 冒号课堂§3.4：事件驱动</title>
	<atom:link href="http://blog.zhenghui.org/2009/09/11/colon-class-3_4/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zhenghui.org/2009/09/11/colon-class-3_4/</link>
	<description>自然、人类、机器</description>
	<lastBuildDate>Sat, 14 Jan 2012 02:01:40 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>By: hui</title>
		<link>http://blog.zhenghui.org/2009/09/11/colon-class-3_4/comment-page-1/#comment-1097</link>
		<dc:creator>hui</dc:creator>
		<pubDate>Tue, 08 Nov 2011 02:55:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.zhenghui.org/?p=393#comment-1097</guid>
		<description>首先，底层是否用轮询是其内部实现问题，无论如何上层应用采用事件驱动都是有意义的。这是两个不同层次的抽象，彼此尽可能地独立。其次，即使底层最终采用了部分轮询，那也只会是最必要、最少量的轮询，浪费CPU的OS当然不会是合格的OS。对于鼠标、键盘、网络接口等之类底层事件的捕获，也不是只采取简单的poll（轮询），根据不同硬件的特性许多也通过interrupt（中断）——即本质上仍以事件驱动为主。最后不要忘了，除了底层事件以外，文中还提到了语义事件，对于后者底层是完全不需要轮询的，因为这类事件是水到渠成的结果。打个比方，你在银行汇款只需拿号后听叫号，不用一遍遍问出纳员，这是事件驱动。作为“底层”的出纳员，每处理完一位客户自然会叫下一位，也丝毫用不着轮询。</description>
		<content:encoded><![CDATA[<p>首先，底层是否用轮询是其内部实现问题，无论如何上层应用采用事件驱动都是有意义的。这是两个不同层次的抽象，彼此尽可能地独立。其次，即使底层最终采用了部分轮询，那也只会是最必要、最少量的轮询，浪费CPU的OS当然不会是合格的OS。对于鼠标、键盘、网络接口等之类底层事件的捕获，也不是只采取简单的poll（轮询），根据不同硬件的特性许多也通过interrupt（中断）——即本质上仍以事件驱动为主。最后不要忘了，除了底层事件以外，文中还提到了语义事件，对于后者底层是完全不需要轮询的，因为这类事件是水到渠成的结果。打个比方，你在银行汇款只需拿号后听叫号，不用一遍遍问出纳员，这是事件驱动。作为“底层”的出纳员，每处理完一位客户自然会叫下一位，也丝毫用不着轮询。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yuhongyu</title>
		<link>http://blog.zhenghui.org/2009/09/11/colon-class-3_4/comment-page-1/#comment-1096</link>
		<dc:creator>yuhongyu</dc:creator>
		<pubDate>Tue, 08 Nov 2011 02:00:36 +0000</pubDate>
		<guid isPermaLink="false">http://blog.zhenghui.org/?p=393#comment-1096</guid>
		<description>事件驱动是底层平台调用你的响应事件函数的机制（狭义上），比如一个鼠标点击事件，系统是如何捕获这个事件的呢？是不是还是需要操作系统对消息队列进行轮询方法，再进行事件分类处理，对不同的消息回调上层应用程序中的响应函数呢？

这样做能不能理解为底层平台代理你省略了轮询的过程，但是轮询，即主动去“寻找”消息还是不可或缺的，只不过是从上层应用异步地被底层所实现了？</description>
		<content:encoded><![CDATA[<p>事件驱动是底层平台调用你的响应事件函数的机制（狭义上），比如一个鼠标点击事件，系统是如何捕获这个事件的呢？是不是还是需要操作系统对消息队列进行轮询方法，再进行事件分类处理，对不同的消息回调上层应用程序中的响应函数呢？</p>
<p>这样做能不能理解为底层平台代理你省略了轮询的过程，但是轮询，即主动去“寻找”消息还是不可或缺的，只不过是从上层应用异步地被底层所实现了？</p>
]]></content:encoded>
	</item>
</channel>
</rss>

