﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-(define (cuigang) (coding))-文章分类-《C++面向对象多线程编程》笔记</title><link>http://www.cppblog.com/cuigang/category/5815.html</link><description>(define (coding) (coding))
</description><language>zh-cn</language><lastBuildDate>Mon, 19 May 2008 19:56:57 GMT</lastBuildDate><pubDate>Mon, 19 May 2008 19:56:57 GMT</pubDate><ttl>60</ttl><item><title>《C++面向对象多线程编程》笔记（四）</title><link>http://www.cppblog.com/cuigang/articles/38807.html</link><dc:creator>cuigang</dc:creator><author>cuigang</author><pubDate>Mon, 17 Dec 2007 13:35:00 GMT</pubDate><guid>http://www.cppblog.com/cuigang/articles/38807.html</guid><wfw:comment>http://www.cppblog.com/cuigang/comments/38807.html</wfw:comment><comments>http://www.cppblog.com/cuigang/articles/38807.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cuigang/comments/commentRss/38807.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cuigang/services/trackbacks/38807.html</trackback:ping><description><![CDATA[<br>&nbsp;<br>第10章 类层次和线程处理C++组件<br>&nbsp;<br>集合类和容器类最常用的地方是线程间通讯。<br>&nbsp;<br>为了设计多线程类，我们至少需要6个基本组件：<br>1、宿主类（host class）<br>2、线程类（thread class）<br>3、互斥和事件类（mutex and event class）<br>4、友元成员函数（friend member function）<br>5、域类（domain class）<br>6、强制转换基本元素（casting primitive）<br>&nbsp;<br>应用框架分解<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 应用框架总是至少分解为两个主要组件。第一个为框架设计者提供的框架部分。这个组件包含按一般性方式捕获的特定动作序列以及对象间的关系，它表示某问题类别的一种常见解决方案。第二个组件成为ensemble。ensemble具体表现域知识、专家知识、规则以及特定解决方案的策略（The Power of Frameworks, Taligent）。ensemble由框架的用户提供。框架本身提供了应用的形式。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指定动作序列由三类函数类型来实现。一是虚函数，二是纯虚函数，三是常规函数。<br> <img src ="http://www.cppblog.com/cuigang/aggbug/38807.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cuigang/" target="_blank">cuigang</a> 2007-12-17 21:35 <a href="http://www.cppblog.com/cuigang/articles/38807.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《C++面向对象多线程编程》笔记（三）</title><link>http://www.cppblog.com/cuigang/articles/38805.html</link><dc:creator>cuigang</dc:creator><author>cuigang</author><pubDate>Mon, 17 Dec 2007 13:34:00 GMT</pubDate><guid>http://www.cppblog.com/cuigang/articles/38805.html</guid><wfw:comment>http://www.cppblog.com/cuigang/comments/38805.html</wfw:comment><comments>http://www.cppblog.com/cuigang/articles/38805.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cuigang/comments/commentRss/38805.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cuigang/services/trackbacks/38805.html</trackback:ping><description><![CDATA[<br>&nbsp;<br>同步对象将系统API封装在类里，避免全局变量以及同步的自发调用。<br>&nbsp;<br>第九章 线程处理面向对象架构<br>&nbsp;<br>多线程处理应当服从该架构，架构不应受多线程处理的驱动。有一些天生就适合于多线程处理的常见架构。下面是其中的三种架构：<br><br>1、客户机/服务器<br>2、事件驱动编程（GUI）<br>3、黑板（blackboard）<br>&nbsp;<br>同步对象访问以及保护对象临界区的责任应当从对象的用户身上转移倒对象的提供者身上。<br>&nbsp;<br>在PRAM模型中操作的算法一般可分为4类并发访问：<br>1、EREW 排他性读和排他性写<br>2、CREW 并发读和排他性写<br>3、ERCW 排他性读和并发写<br>4、CRCW 并发读和并发写<br>&nbsp;<br>增量多线程处理，步骤：<br>1、构建同步、任务、线程类（互斥量、管道、队列、事件等）<br>2、结合同步类和宿主类<br>3、选择PRAM策略<br>4、使用成员函数强制实施策略<br>5、选定适宜的架构，构建类库、容器类和域类<br>&nbsp;<br> <img src ="http://www.cppblog.com/cuigang/aggbug/38805.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cuigang/" target="_blank">cuigang</a> 2007-12-17 21:34 <a href="http://www.cppblog.com/cuigang/articles/38805.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《C++面向对象多线程编程》笔记（一）</title><link>http://www.cppblog.com/cuigang/articles/38802.html</link><dc:creator>cuigang</dc:creator><author>cuigang</author><pubDate>Mon, 17 Dec 2007 13:32:00 GMT</pubDate><guid>http://www.cppblog.com/cuigang/articles/38802.html</guid><wfw:comment>http://www.cppblog.com/cuigang/comments/38802.html</wfw:comment><comments>http://www.cppblog.com/cuigang/articles/38802.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cuigang/comments/commentRss/38802.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cuigang/services/trackbacks/38802.html</trackback:ping><description><![CDATA[<br>&nbsp;<br>第一章 C++组件简介<br>&nbsp;<br>class type（类的类型）：常见的类有下面8种：<br>&nbsp;<br>1、具体类（concrete class）：<br>2、抽象类（abstract class）：<br>3、接口类（interface class）：<br>4、节点类（node class）：<br>5、支持类（support class）：<br>6、域类（domain class）：<br>7、应用类（utility class）：<br>8、集合和容器类（collection and container class）：<br>&nbsp;<br>第二章 进程解剖<br>第三章 轻量级进程：线程<br>第四章 多任务与多线程编程<br>第五章 进程间和线程间通信<br>&nbsp;<br>依赖关系：<br>1、A&#8594;B、A&#8592;B：单向依赖<br>2、A&lt;-&gt;B：双向依赖<br>3、A&#934;B：无依赖关系<br>&nbsp;<br> <img src ="http://www.cppblog.com/cuigang/aggbug/38802.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cuigang/" target="_blank">cuigang</a> 2007-12-17 21:32 <a href="http://www.cppblog.com/cuigang/articles/38802.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《C++面向对象多线程编程》笔记（二）</title><link>http://www.cppblog.com/cuigang/articles/38803.html</link><dc:creator>cuigang</dc:creator><author>cuigang</author><pubDate>Mon, 17 Dec 2007 13:32:00 GMT</pubDate><guid>http://www.cppblog.com/cuigang/articles/38803.html</guid><wfw:comment>http://www.cppblog.com/cuigang/comments/38803.html</wfw:comment><comments>http://www.cppblog.com/cuigang/articles/38803.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cuigang/comments/commentRss/38803.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cuigang/services/trackbacks/38803.html</trackback:ping><description><![CDATA[<br>两种依赖关系：<br>1、通讯依赖性：当线程A需要来自线程B的数据时，就发生通讯依赖性。<br>2、合作依赖性：当线程A需要线程B拥有的资源，而且在线程A可以使用这些资源前，线程B必须释放它。<br>进程间通讯（IPC）的方式：<br>1、环境变量/文件描述符：全局资源<br>2、命令行参数：父子进程<br>3、管道：<br>4、共享内存：<br>5：DDE（动态数据交换）：主要依靠消息机制和共享内存。<br>线程间通信可以通过全局变量。<br>第六章 合作与同步<br>第七章 接口类与进程间通信<br>第八章 同步对象<br><br><br> <img src ="http://www.cppblog.com/cuigang/aggbug/38803.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cuigang/" target="_blank">cuigang</a> 2007-12-17 21:32 <a href="http://www.cppblog.com/cuigang/articles/38803.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>