06 2010 档案

摘要: 本章详细讲述了I/O方向的异步工作如何完成,首先解释了Windows处理同步I/O和异步I/O的内部机制。然后介绍了APM,针对APM的问题还介绍了一个Wintellect的辅助类AsyncEnumerator。接着讲了APM如何处理异常,以及应用程序如何选择线程模型。演示了如何实现一个异步的服务器程序(ASP.NET WEB服务、ASP.NET窗体页面、WCF)。解释了APM还可以用于计算方向的异步操作。接着,重点解释了APM的缺点以及处理办法。然后讲述了I/O请求的优先级,以及如何讲了IAsyncResult APM转换成Task。接着还介绍了一种不太优雅的异步编程模型EAP。最后针对几种异步编程模型进行了比较。 阅读全文
posted @ 2010-06-22 15:28 bengxia 阅读(619) 评论(0) 推荐(0)
摘要: 本章讲了计算方向的异步操作问题,首先隆重推出了CLR的线程池概念,给线程池的线程划分了两个类别:工作者线程和I/O线程。然后演示了如何简单的使用线程池实现一个多线程计算操作;接着讨论了线程池的线程执行体上下文结构;然后引出了协作式取消模式以解释如何在线程池中取消操作;本章重点讨论了Task,一种使用线程池的更强大易用方法,并演示了如何等待任务完成获得结果,如何取消任务,如何在一个任务完成后自动的开始另外一个任务,如何由一个任务开始子任务。接着分析了Task的实现机制和调度策略,如何利用TaskFactory工厂模式创建任务。本章还讲述了如何使用Parallel LINQ以及它的限制和注意事项;接着还讨论了定时器的作用,比较了FCL提供的几种定时器的差异。之后简单解释了线程池是如何管理线程的。最后讨论了高速缓存行和多处理器环境下需要注意的错误共享(False Sharing)问题。 阅读全文
posted @ 2010-06-09 11:39 bengxia 阅读(471) 评论(0) 推荐(0)
摘要: 本章讲述了线程的基本知识。首先介绍了Windows的线程概念,CPU的发展趋势,CLR线程与Windows线程直接的关系。然后分析了使用线程的开销,总结了在什么情况下使用线程,使用线程时要注意哪些问题。接着讲解了NUMA的体系结构。讲述了在什么情形下需用使用确定的线程来完成异步计算密集型任务。接着给出了使用线程的理由。重点深入解释了Windows线程的调度机制,线程的优先级以及和线程优先级之间的关联。本章的结尾讲述了选择前台线程和后台线程的条件。最后还推荐了Wintellect Power Threading Library来简化异步编程和线程同步。 阅读全文
posted @ 2010-06-02 15:34 bengxia 阅读(433) 评论(0) 推荐(0)

无觅相关文章插件,快速提升流量