(2) 多进程、多线程以及相互之间通信
现有一个数据收发管理单元 ISTransManager,该管理单元用于接收外部传入
的数据,同时兼具内部数据的组织与转发。另有 3 个任务执行单元,
TaskPerformer_0、TaskPerformer_1 和 TaskPerformer_2, 分别执行不同的任务。
具体的组织形式如下,其中双向箭头代表数据的双向传递。TaskPerformer_0、
TaskPerformer_1 和 TaskPerformer_2 相互之间无法两两直接通信。

image.png
请设计一个软件程序(多进程/多线程),并设计一组传输协议,实现
ISTransManager 和 TaskPerformer_0、TaskPerformer_1 及 TaskPerformer_2 的数据
交互,同时实现 TaskPerformer_0、TaskPerformer_1 及 TaskPerformer_2 之间的两
两数据交互。交互数据类型包括指令(字节序列码)和文件(TXT、JPEG 等)两种。
接收数据的协议:
struct Data{
int dataId;
string dataName;
string fileName;
int status;
};
分解任务的协议:
struct Task{
int taskId;
int dataId;
string taskName;
string command;
string fileName;
int status;
int preTaskId;
int behindTaskId;
};
通过前后任务Id,实现了任务进程之间的交互