所以我正在查看我的下一个学校作业,我很困惑。我想我会向专家寻求一些指导。我严重缺乏同步方面的知识,而且我对它所指的“mcopyfile”任务也没有那么热情。可怕的可能是一个好词。如果我能就如何解决这个问题获得一些指导,将不胜感激。不是找人来做我的任务,只需要有人给我指出正确的方向。婴儿步骤。
基于您在 Lab 2 中创建的多线程文件复制工具(mcopyfile),现在请使用工作池(Producer-Consumer 模型)实现,该实现使用固定数量的线程来处理负载(无论在要复制的目录)。您的程序应创建 1 个文件复制生产者线程和多个文件复制消费者线程(此数字取自命令行参数)。文件复制生产者线程将在有界大小的缓冲区结构中生成(源和目标)文件描述符列表。每次生产者访问缓冲区时,它将写入一个(源,目标)文件条目(每次访问)。并且所有的文件复制消费者线程都会从这个缓冲区中读取,执行实际的文件复制任务,并删除相应的文件条目(每个消费者每次都会消费一个条目)。生产者和消费者线程都会向标准输出写入一条消息,给出文件名和完成状态(例如,对于生产者:“正在完成将文件 1 放入缓冲区”,对于消费者:“正在完成将文件 1 复制到……”)。