表2 Client端的线程和亚线程列表

在Server端,亚线程树结构如图2所示。其中,图像采集、图像压缩和图像传送三个线程的处理对象都是视频文件;命令接收和命令执行两个线程的处理对象都是命令;文件加密线程和文件解密线程的处理对象都是文件;文字发送线程和文字接收线程则负责文字通信。基于上述特点,这些线程构成了图2所示的亚线程树结构。

在Client端,程序运行后,每连接一个机器人站点就建立一个进程。每个进程中的亚线程结构如图3所示。各亚线程的构建方法与Server端类似。

加入亚线程机制后,亚线程间的数据访问受到限制。例如文字发送、接收线程和S/C同步线程基本不访问加密解密的文件,亚线程管理器甚至可以禁止这些线程去访问传输的文件。又如,对传输的视频数据,除了Server端的图像采集、压缩和传送线程,以及Client端的图像接收、解压缩和显示线程外,不能被其他任何线程访问。这样,通过亚线程机制优化了整个应用程序的运行,并保证了数据的安全。此外,由于主要操作都归为亚线程内部操作,所以,大大提高了程序执行的效率。

1.3 亚线程机制的特点

亚线程机制的特点是,允许对一个亚线程中的所有线程同时操作。例如,可通过调用相应的方法来设置其中所有线程的优先级,也可以启动或阻塞所有线程。