中邮建技术有限公司 陈 雷
数据通信中多线程技术的应用
中邮建技术有限公司 陈 雷
多线程技术应用于数据通信系统是提高通信质量的有力措施,在一定程度上也为人们提供安全、便捷的通信服务。对数据通信中多线程技术的适用场合、编程要素、编程设计等应用进行了探讨。
数据通信;多线程技术;应用
数据通信系统得益于现代数据技术的大力发展,其结构和功能也在不断完善。但由于信息数据在传输中受到现有材料科学的制约,在某些方面还存在一定的弊端,多线程技术的有效应用解决了这一难题,它的优点在于其可以提高系统的安全性与数据的可靠性。多线程技术的广泛应用对整个数据通信领域产生了重大的积极作用。
假定在一个系统中,整个系统在结构和功能上是一个同步的整体。但是在程序设计时,程序不可能长久地等待客户的输入。在设计时就必须考虑一些客户与程序怎样更好地交流。比如客户对一个主程序的循环进行了输入,但是这个循环却不是专门为了等待这个操作而设。如何为客户提供一个系统,使其可以当客户输入指令时,主系统的循环可以及时的处理并完成客户的需求,为客户提供一个处理问题的模块。以上这些复合的处理客户指令的系统都可以运用多线程技术的思想解决。在通信数据系统的运行中,如果所运行的程序过于复杂,那么我们一般就可以采用多线程技术,利用它对数据进行高效的处理,并对客户的指令数据进行一个预处理。这样不仅可以有效缩短客户输出信息的延迟时间,还可以保证整个系统的数据运行的正常,使整个系统的循环在使用中对整个系统的情况进行合理全面的调度。比如,数据通信系统中的数据优先级问题和对冲问题等。该多线程技术还有一个优点,虽然不同的系统模块其中的设计思路存在差异,但这些却不会对多线程技术的应用产生多大的影响,可以更好地保证整个数据的安全输入和输出。
众所周知,在OSI(开放系统互连)栈式结构的一组协议中,处于最底层的属于物理层范围,其主要职责是进行数据的传输工作;位于顶层的则是一些应用层,他们的任务是实现与用户的对接工作。在一台电脑中,物理层是承担数据传送的,它保证数据可以从本地传输到另一个通信系统的对等面上。当数据传输完之后,物理层就会处于一种待命状态,等待再次来自上层数据链的指令,或者是来自其他对等面的数据。物理层不会因为在运行其中一个指令而拒绝另一个指令。所以从这一点上可以看出,物理层是符合多线程技术的运行模式的。
运用多线程技术在数据通信系统中进行编程就必须掌握它所具有的相关要点,主要包括以下几点:
1)主循环——也被称作主事件循环。主循环是承担数据的接收和传输的。这个模块同时还承担着整个系统的资源调度功能。
2)为主循环产生事件的模块,抑或是一种以某种方式通知主系统事件的模块。
3)接受通知的模块,接受来自主系统运行产生的事件。这个模块称作“数据处理器”。
4)一种协助主事件循环监视它应该知道的所有需要事件的机制。每个event handler能够同时通知主事件循环,继而得知它所需要的具体事件还有哪些,如图1所示。图1中展示了一个多线程技术运行的模型,我们可以看到,多线程技术编程的整个框架模块,是由一个主事件循环、OS(操作系统)事件发生器、事件处理器、回调和事件注册机制构建的。
4.1 设计框架
在数据通信中主要是通过编程设计来实现多线程技术的有效应用,具体的设计理念与思路可从以下几个层面加以分析。
1)主循环方面的编程:该方面主要是由scheduler实现的,当事件处理程序存在时会自动向scheduler发出命令,继而完成事件的监督工作,当事件已经完成时,scheduler则会发出命令告知事件并处理相关程序。
2)事件处理程序方面的编程:该方面是通过eventHandler来完成的。在eventHandler中存在一个通用的接口setevent(),该接口不仅可以实现对事件的监督作用,而且在该接口中还存在可对数据进行有效处理的回调函数,像checkevent()以及event-callback()。
3)事件处理程序子类方面的编程:该部分是由 inputHandler协助完成的。inputHandler的作用有两个:一是可对文件所输入的数据进行准确处理,并在子类的基础上衍生出其他的分类;二是能完成对函数event-callback()的重写工作,方便其在文件输入数据时进行一些特定的操作。
4)在eventHandler类的子类方面的编程,该方面则是通过timerHandler完成的,timerHandler的主要作用是可对定时器进行不同的处理,并在子类的基础上衍生出其他的种类,并在一定程度上实现对函数event-callback()的重写,并经特殊的操作,完成对超时定时器的处理工作。
4.2 主要操作
各部分的主要操作程序为:
1)SetInput(),将这个函数接受一个指向fd-set结构的指针,并将其所表示的文件设置为1;
2)SetTimeout(),将该函数接受指向为timeval结构的指针,并设置定时器使其满足超时前所规定的时间;
3)InputReadCallback(),对这个函数实行输入处理;
4)CheckInput(),对该函数进行处理使其接受一个指向为fd-set结构的指针,对该函数所代表的数据进行全面检查,确保输入的准确性;
5)TimeoutCallback(),该函数要进行超时处理;
6)CheckTimeout(),对该函数的设置要参照timeval结构进行,以确保当前时间值是否超时,如遇超时情况,则将其调至TimeoutCallback进行处理。
该操作程序是按照国际相关标准进行执行的,一方面在一定程度提高了系统的准确性,确保数据通信的安全性,另一方面也有效的减少了维护的难度。具体描述见图1所示。
在数据通信系统中,进行多线程技术的应用效果显著,应用价值广泛,具体表现在:一是强化了网络管理力度,使数据通信更为精确与有效;二是在数据系统的安全性能上也起到了一定的保障作用,增强通信运行的高效性。因而,将多线程技术应用于数据通信系统是提高通信质量的有力措施,在一定程度上也为人们提供安全、便捷的通信服务,值得推广与应用。 ◆