用 C 语言写一个函数来执行一串任务。任务是互相依赖的。比如 B 任务依赖 A 任 务,则 A 完成 B
才能执行。不考虑并发限制,假设所有的任务都能一次执行成功, 所有的任务执行时间都相等。任务数据结构原型为:
typedef struct { //该任务的 ID int id; //该任务依赖的任务的 ID int *child; //该任务依赖的任务个数 int child_num; } task; // 函数原型: bool doschedule(task*pask,inttask_num); //以下函数可以直接调用: void dotask(int id); //执行一个进程 //等待 timeout 时间,并返回一个执行成功的任务的 id,如果没有任务在时间片内完成,则返回-1 int waittask(int timeout); bool killtask(int id); //杀掉一个进程