谁能讲讲push和pull模式是什么意思?(参与有分) [问题点数:100分,结帖人mickeyfirst]

mickeyfirst
mickeyfirst
等级:
结帖率:94.12%
楼主 发表于: 2002-06-01 15:45:43
谁能讲讲push和pull模式是什么意思?
谢谢

 
分享到:

回复次数:11

Token

Token
等级:

#1
得分:10

回复于:
2002-06-01 19:32:13

是指DirectShow中的两种模式吗
capboy

capboy
等级:

#2
得分:20

回复于:
2002-06-01 20:08:07

字面意思就比较清楚了,push推...有主动的意思.
数据的递交都有自己完成,应用在时时的模式的情况下,比如直播什么的.
pull拉...被动的.
数据需要自己保存,当其他filter有需要的时候,就会要求从你这里获得数据,你不知道什么时候会有这个要求,所以你需要保存所有的数据以供需求.当然用完了例外.
xingtian713

xingtian713
等级:

#3
得分:10

回复于:
2002-06-01 22:20:08

push模式一般用于实时流的播放,视频采集卡捕获的视频流,推向缓冲区,可以参考directx show中的ball实例,而pull模式一般用于文件回放,filter从缓冲区中取数据,可以参考memfile例子
liz22

liz22
等级:

#4
得分:0

回复于:
2002-06-04 14:13:09

ball实例怎么用啊?
jimconrad

jimconrad
等级:

#5
得分:20

回复于:
2002-06-05 16:06:43

push和pull模式是observer对象行为模式式中涉及到的概念。该模式中有目标(subject)和观察者(observer)两个主要参与
者。目标向观察者发送关于数据改变的详细信息,而不管他们需要否,我们称之为push模式;另一种是pull模式,目标除最小通知外什么也不送出,而在此
后由观察者显式的向目标询问细节。

At one extreme, which we call the push model, the subject sends observers detailed information about the change, whether they want it or not. At the other extreme is the pull model; the subject sends nothing but the most minimal notification, and observers ask for details explicitly thereafter.

observer很典型的一个例子就是 CWnd对象 和 该对象对应的窗口,前者是subject,后者是observer。在dxshow中,source filter是subject,downstream filters是observer。

jimconrad

jimconrad
等级:

#6
得分:10

回复于:
2002-06-05 16:09:50

参考《设计模式》5.7节(page198)。
winne_ll

winne_ll
等级:

#7
得分:10

回复于:
2002-06-05 16:43:10

UP
xingtian713

xingtian713
等级:

#8
得分:10

回复于:
2002-06-05 18:13:51

你可以用graph edit来测试它,在directx show文档中有详细说明,你可以到文档的samples目录下去查查
hquwl

hquwl
等级:

#9
得分:10

回复于:
2002-06-05 20:01:40

帮你up一下。

ZT————pull push mode的更多相关文章

  1. Git 一次性 pull push 所有的分支

    /********************************************************************************* * Git 一次性 pull pu ...

  2. linux服务器git pull/push时提示输入账号密码之免除设置

    1.先cd到根目录,执行git config --global credential.helper store命令 [root@iZ25mi9h7ayZ ~]# git config --global ...

  3. 解决git pull/push每次都需要输入密码问题 和 HttpRequestException encountered

    如果我们git clone的下载代码的时候是连接的https://而不是git@git (ssh)的形式,当我们操作git pull/push到远程的时候,总是提示我们输入账号和密码才能操作成功,频繁 ...

  4. linux git pull/push时提示输入账号密码之免除设置

    1.先cd到根目录,执行git config --global credential.helper store命令 [root@iZ25mi9h7ayZ ~]# git config --global ...

  5. docker从私有镜像库pull/push镜像问题:Error response from daemon: Get https://xxxx.com/: x509: certificate signed by unknown authority

    docker从私有镜像库pull/push镜像问题:Error response from daemon: Get https://harbor.op.xxxx.com/v2/: x509: cert ...

  6. linux服务器git pull/push时避免频繁输入账号密码

    1.先cd到根目录,执行git config --global credential.helper store命令 [root@iZ25mi9h7ayZ ~]# git config --global ...

  7. 创建Python数据分析的Docker镜像+Docker自定义镜像commit,Dockerfile方式解析+pull,push,rmi操作

    实例解析Docker如何通过commit,Dockerfile两种方式自定义Dcoker镜像,对自定义镜像的pull,push,rmi等常用操作,通过实例创建一个Python数据分析开发环境的Dock ...

  8. 使用 expect 重启失败的 git pull/push 操作

    问题的提出 最近使用 github 上传.下载项目代码时,经常会卡很久,有时候在命令行打了 git push 然后就去上厕所了,结果等我回来的时候,发现 push 早已经失败了,还得重新提交一下.如果 ...

  9. Docker DevOps实战:GitLab+Jenkins(1)- GitLab容器搭建、使用SourceTree pull/push项目

    GitLab容器搭建 # 创建GitLab容器# --restart always #重启,容器自动重启# --privileged=true #容器内使用root权限 [root@localhost ...

随机推荐

  1. Kafka 0.9 新消费者API

    kafka诞生之初,它自带一个基于scala的生产者和消费者客户端.但是慢慢的我们认识到这些API有很多限制.比如,消费者有一个“高级”API支持分组和异常控制,但是不支持很多更复杂的应用场景:它也有 ...

  2. SQL Cookbook—数字、日期

    1.计算不包含最大值和最小值的均值2.把字母数字串转换为数值3.更改累计和中的值–显示存款或取款后的值4.加减日.月.年5.计算两个日期之间的天数6.确定两个日期之间的工作日数目表EMP中,计算BLA ...

  3. Win7与Ubuntu双系统安装过程

    Win7安装1.宏基安装Win7插入Win7系统光盘-> 重新启动-> 按F12-> 选择CD安装-> 按任意键-> 选择自定义(高级),接下去根据提示安装. 2.华硕安 ...

  4. Hibernate实体类编写规则和主键策略

    一.实体类的编写规则 1.属性要是私有的. 2.要有公开的setter和getter方法供外界访问和修改. 3.每一个实体类要有一个属性作为唯一值(一般都是使用对于数据表的主键). 4.建议数据类型不 ...

  5. 【c++】常识易混提示

    1. struct 和 class 唯一的区别:默认的成员保护级别和默认的派生保护级别不同(前者为public,后者为private). 2. int *p = new int[23];     de ...

  6. step1: python & scrapy安装

    #首先安装python,这里安装python所需依赖包yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-dev ...

  7. Orchard源码分析 - 缓存管理

        ICacheManager  &   ICacheHolder              Orchard缓存管理主要通过 ICacheManager 接口对外提供缓存服务. 其实现类D ...

  8. 开窗函数over()

    使用方法 如:select name,avg(shengao)from xinxi group by name //我们都知道使用聚合函数要使用分组,如果不分组怎么办 Selct name,avg(s ...

  9. Java - 让1+1的结果变成3

    原出处是国外某论坛某帖子中楼主提问:如何让1+1=3?于是出现了各种语言实现的各种机制的答案,当然其中也包括直接用字符串输出"1+1=3"...最后被采纳的是用Java语言实现的答 ...

  10. C# 委托,事件, 异步

    委托 ​ 委托可以说是方法的集合,里面放着方法列表,当调用的时候就会调用全部的方法列表 ​ 个人理解 : 当声明和创建时委托时, 它是个 对象 当使用委托,调用方法时,它是个 方法 声明委托类型 de ...