没有合适的资源?快使用搜索试试~ 我知道了~
用PB编写多线程应用程序
3星 · 超过75%的资源 需积分: 10 16 下载量 161 浏览量
2010-03-13
09:26:08
上传
评论
收藏 60KB DOC 举报
温馨提示
试读
6页
多线程是指一个程序内部同时执行的多个流程,与单线程相比,它至少有两个方面的优点:第一,它可以更好地利用系统资源,比如CPU,若一个线程因I/O操作受阻,另一个线程仍可利用CPU来执行;第二,它更好地满足了客户的需求,因为挑剔的客户希望你开发的程序在显示动画的同时还能播放音乐、显示文件、下载网络文件等,这是单线程应用程序无法完成的。目前,支持多线程的开发工具主要有:Java、VC、Delphi和C++Builder。 多线程强调的是一个进程内部有多个流程在同时执行,同时执行的概念相当于PB分布式计算中的异步处理。也就是说,只要我们在一个程序内部实现了异步处理,就相当于实现了多线程。分析至此,下一步该怎么做就不言而喻了:在一个应用程序内部实现分布式计算,使用服务器推送技术,异步执行共享对象中的函数。
资源推荐
资源详情
资源评论
用 PB 编写多线程应用程序
多线程是指一个程序内部同时执行的多个流程,与单线程相比,它至少有两个方面的优点
第一,它可以更好地利用系统资源,比如 CPU,若一个线程因 I/O 操作受阻,另一个线程
仍可利用 CPU 来执行;第二,它更好地满足了客户的需求,因为挑剔的客户希望你开发的
程序在显示动画的同时还能播放音乐、显示文件、下载网络文件等,这是单线程应用程序
无法完成的。目前,支持多线程的开发工具主要有:Java、VC、Delphi 和 C++Builder。
多线程强调的是一个进程内部有多个流程在同时执行,同时执行的概念相当于 PB 分
布式计算中的异步处理。也就是说,只要我们在一个程序内部实现了异步处理,就相当于
实现了多线程。分析至此,下一步该怎么做就不言而喻了:在一个应用程序内部实现分布
式计算,使用服务器推送技术,异步执行共享对象中的函数。
下面就编写一个 Demo,介绍在 PB 中如何利用分布式计算技术来开发多线程应用程序,
其程序结构如图 1 所示。uo_thread1 和 uo_thread2 是类用户对象 uo_thread 的两个实例,
uo_thread 的功能是给实例变量 li_Count 自加 5 秒,自加的同时向中间对象 uo_argv1 和
uo_argv2 发送 ue_thread 消息。两个中间对象的功能是把 ue_thread 消息转化为 ue_thread1 和
ue_thread2 后发给主窗口 w_main。
图 1 程序结构
主窗口接收到 ue_thread1 消息后,显示 uo_thread1 中自加变量的值,接收到 ue_thread2
后 , 显 示 uo_thread2 中 自 加 变 量 的 值 。 在 单 线 程 中 , uo_thread1 先 执 行 , 5 秒 钟 后
uo_thread2 开始执行,因此,前 5 秒内主窗口只能收到 ue_thread1 消息,后 5 秒内只能收到
ue_thread2 消息。在多线程中,uo_thread1 和 uo_thread2 同时执行,因此 w_main 可以不断
地收到 ue_thread1 和 ue_thread2 消息。
1.设计用户对象 uo_thread
新建一个类用户对象,命名为 uo_thread,添加如下两个实例变量:
NonVisualObject inv_arg
Long li_Count //自加变量
创建如下三个用户函数:
⑴ uf_start(),功能是:完成自加 5 秒并向中间对象发送 ue_thread 消息。脚本为:
Time t0
t0= Now() //获取当前时间
Do While SecondsAfter(t0,Now())〈=5
li_Count++//实例变量自加 5 秒
inv_arg.TriggerEvent(′ue_thread′) //向中间对象发送 ue_thread 消息
1
资源评论
- whomwhomwhom2014-02-18骗分的!估计楼上的是马甲。内容是两篇网页文章,随便百度一下都能找到。一篇叫<用PB编写多线程应用程序>,另一篇名为<Powerbuilder中实现多线程同步查询>。
- X_File2013-08-14比较实用,这种资源很少
yadjs
- 粉丝: 0
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功