关键词:
线程池
工区数据
信号同步
摘要:
GeoMountain处理工程师软件是川庆物探公司技术发展中心自主研发的Geomountain一体化地震勘探软件系统的三大核心之一,承担地震数据的处理任务,目前已在实际生产中投入使用,取得了良好的效果,但是所有的处理部门都提出了软件要有成果图打印功能,这是基于使用“长案会议”方式进行剖面分析工作方式所提处的需求。另一方面,由于大幅面绘图仪成本高,因此软件只能使用网络打印的方式提供相关服务。目前世界各大公司的知名地震资料处理系统均配备了网络打印功能,如Omega、Geocluster、CGG等。其中CGG的网络打印采用的是C/S体系结构,一台计算机作为服务器,通过服务器的相关功能读取局域网信息,设各类参数,比如设置NFS存储及文件夹信息。客户端发起打印作业后,图样会发至服务器设置的NFS存储位置。服务器收到打印命令后,会读取存放在NFS存储中的图样,并打印。若接收到多个打印命令,服务器端会根据收到打印命令的时间来判断排序并避免批量打印情况下的无序打印。打印完成后会生成打印日志。若出现打印问题,将允许人工对打印作业排序。国内东方地球物理勘探公司研制的GeoEast软件系统也配备了比较完善的网络打印功能。本论文正是针对上述问题,以线程池技术、多线程之间信号同步、基于数据库的网络打印技术、TCP大文件发送和通信平台消息传递技术、基于工区数据的批量打印技术主要的研究对象,在深入分析处理工作实际需要的基础上,可以为Geomountain处理工程师软件系统提供一个便捷、友好、高效的网络打印工具;降低使用成果图件单机打印劳动强度,提高生产效率。主要内容为:1.研究线程池技术,实现一种利用预先创建的线程池分配任务,需要使用时取出空闲线程,而不需要在使用时新建线程对象,减少了创建开销并提高了响应速度的方法,同时发现没有空闲的线程时,就等待空闲线程出现,从而防止资源不足引起的响应失效,并可以在并发响应时,对每个运行的线程进行管理,防止线程不受控制。2.研究TCP大文件发送和通信平台消息传递技术,实现基于boost库,利用TCP协议进行大文件的传输,构建基础的通信平台,单独启动线程传输大文件,传输信息与主线程交互的功能,文件传输不影响其他操作的功能,保证网络稳定性高,传输准确快捷,同时利用QT的信号和槽机制,对于消息的接收进行优化。3.研究基于工区数据的批量打印技术,实现一种采用工区显示参数保存和工区数据显示参数匹配管理,方便生成工区下的所有地震数据剖面,从而自动请求生成网络打印作业,方便绘图模块与网络打印客服端模块之间的接口衔接的功能,并通过网络打印客服端对网络打印作业的管理,方便工区数据完成批量打印功能。4.研究基于数据库的网络打印技术,实现数据库存储作业基本信息和日志信息,存储打印机的信息,并进行实时的状态登记和更新,方便打印的管理,同时提供及时的查询和排序功能,能够对作业进行快速定位,提供足够信息帮助用户做出打印选择的功能。5.研究多线程之间信号同步技术,实现一种当有打印作业到来时,接收线程可以利用同步信号通知等待作业的打印线程;当需要处理响应任务时,利用信号通知机制,通知空闲线程有新的响应任务的功能。