谁能讲讲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. Cloudera Manager集群官方默认的各个组件开启默认顺序(图文详解)

    不多说,直接上干货! 如下是 Cloudera Manager集群官方默认的各个组件开启默认顺序. http://192.168.80.31:7180/cmf/clusters/1/express-a ...

  2. 使用git配合idea使用oschina代码仓库初级教程

    http://git.oschina.net/ 这个是开源中国的代码仓库是免费的,可以建100和仓库,私有也是免费的 第一步,创建 oschina代码仓库,这里就忽略了.很简单.去注册一个简单几步就可 ...

  3. 禅道 xampp中的mysql启动时无法产生err文件

       使用opt/lampp/lampp start命令启动 错误提示:root@zabbix_server ~]# /opt/lampp/bin/mysqld_safe_helper: Can‘t ...

  4. 模拟登陆Github示例

    首先进入github登录页:https://github.com/login 输入账号密码,打开开发者工具,在Network页勾选上Preserve Log(显示持续日志),点击登录,查看Sessio ...

  5. java.lang.NumberFormatException: For input string: "1" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang

    java.lang.NumberFormatException: For input string: "1" at java.lang.NumberFormatException ...

  6. 线上服务器PHP版本编译安装升级全记录

    1.将原来的PHP重命名一下 cd /usr/local/bin/ mv php php.2.9 2.安装依赖 yum install gcc gcc-c++ libxml2 libxml2-deve ...

  7. 面向对象 OOP中的抽象类,接口以及多态

    [抽象类与抽象方法] 1.什么是抽象方法? 没有方法体{}的方法,必须使用abstract关键字修饰,这样的方法,我们称之为抽象方法. abstract function say() 2.什么是抽象类 ...

  8. table表格中 ,点击checkbox 的value值 相加

    <!DOCTYPE html> <html> <head> <title>简单的行列相加求和处理</title> <script sr ...

  9. Idea 配置启动JDK___在windows中使用Intellij Idea时选择自定义的64位JVM

    略过下面的叙述快速配置 配置你的Idea启动jdk  (Idea15之后的版本启动不要JDK1.8) 添加环境变量IDEA_JDK_64,配置和JAVA_HOME环境变量相同,路径写到1.8的jdk就 ...

  10. golang 应用的部署相关技术

    nohup命令 在 linux 下面部署,我们可以利用 nohup 命令,把应用部署在后端,如下所示: nohup ./yourapp & 这样你的应用就跑在了 Linux 系统的守护进程 n ...