• 进程组件Inside COM读书笔记多线程


    在改章节中,我们主要介绍进程组件的内容,自我感觉有个不错的建议和大家分享下

        

    1.      COM线程模型

        

        COM并没有定义新的线程和进程模型,而是直接使用Win32线程。

        

        

    1.1Win32线程

        

             典范的Win32线程拥有两种不同类型的线程:用户界面线程和工作线程。用户线程是同一个或多个窗口关联着的。这些线程拥有自己的消息循环,工作线程用于后台处理。一个进程可以拥有多个用户界面线程和多个工作线程。

             每一个用户界面线程都有一个或多个窗口,线程将调用他所拥有的窗口的窗口过程,对于任一窗口他将被创立他的线程拥有。

        

        

    1.2COM线程

        

        COM用地线程的类型与Win32的两种线程是相同的,只不过换了不同的名称。与Win32中的用户界面线程想对应COM有一个“套间线程”,而与工作线程相对应的则是一个自在线程。

        

        

    1.3套间

        

        “套间”是一个由用户界面风格的线程和一个消息循环工程的概念性实体。

        进程和组件

        12-2中表现是由一个客户和两个线程中组件工程的典范COM应用程序。这个程序将驻留在只有一个执行线程的进程中。进程中组件没有自己的消息循环。而是共享EXE客户的消息循环。

        

    • 参加进程外组件

        当客户连接到进程外组件时,组件同客户在不同的进程中运行,每一个进程都有自己的执行线程。进程外服务器有它自己的消息循环。同使用进程中组件进程的另一个差别在于逾越进程边界的函数调用的参数必须被调整。

        每日一道理
    曾经辉煌过,曾经凋零过,这可是你至死不渝的生活吗?我亲爱的母亲—大自然。多少次,我伏在地上,去聆听你沉重的脉搏声;多少次,我伫立在山前,去感受那松涛千年的浩瀚。你的豪壮,足以让中华民族腾飞;你的无私,谱写了一曲曲感人至深的千古壮曲。

        进程和组件

        下图将是进程外组件在另外一个套间的进程中组件。

        进程和组件

        套间同单线程进程在如下方面是类似的:每一个进程都有它自己的消息循环,一个套间也可以有它自己的消息循环,同一进程中的函数调用和同一套间中的函数调用将不被调整。由于进程和套间只是一个执行线程。因此消息的同步是由保障的。

        

        

    1.4套间线程

        

        一个套间线程值的时套间中仅有的唯一线程。套间线程将拥有他所创立的组件,一个套间中的组件只能由相应的套间线程调用。假定另一个线程调用一个套间中某个组件的方法。COM将把此调用请求方到套间的队列中,消息循环将取出此调用请求并在套间线程上执行相应的方法。

        

        

    1.5自在线程

        

        COM将在套间线程中同步对组件的调用。对于自在线程创立的组件的调用,COM不能使之同步,若某个组件时有自在线程创立的,则恣意线程都可在恣意时候调用它。

        

        

    1.6调整与同步

        

    • 进程间的调用将被调整
    • 同一线程中的调用将不被调整
    • 对于自在线程中组件的调用并不是总被调整
    • 对于调节线程的调用将被同步
    • 同一线程中的调用将由此线程本身实现同步

    文章结束给大家分享下程序员的一些笑话语录: 人脑与电脑的相同点和不同点,人脑会记忆数字,电脑也会记忆数字;人脑会记忆程序,电脑也会记忆程序,但是人脑具有感知能力,这种能力电脑无法模仿,人的记忆会影响到人做任何事情,但是电脑只有程序软件。比尔还表示,人脑与电脑之间最重要的一个差别就是潜意识。对于人脑存储记忆的特别之处,比尔表示,人脑并不大,但是人脑重要的功能是联络,人脑会把同样的记忆存储在不同的地方,因此记忆读取的速度就不相同,而这种速度取决于使用的频率和知识的重要性。人脑的记忆存储能力会随着年龄增长而退化,同时记忆的质量也会随着年龄退化。经典语录网

    --------------------------------- 原创文章 By 组件和调用 ---------------------------------

  • 相关阅读:
    集合综合练习<三>
    集合综合练习<二>
    集合综合练习<一>
    java打分系统
    mysql存储过程
    mysql的视图、索引、触发器、存储过程
    mysql
    Java 集合底层原理剖析(List、Set、Map、Queue)
    HashMap底层实现
    Gradle
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3095832.html
Copyright © 2020-2023  润新知