专栏文章

决赛答案

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqlaeos
此快照首次捕获于
2025/12/04 06:39
3 个月前
此快照最后确认于
2025/12/04 06:39
3 个月前
查看原文
CPP
#include <iostream>
#include <string>
#include <vector>

// 任务状态枚举
enum class TaskStatus {
    WAITING,
    RUNNING,
    COMPLETED
};

// 任务基类
class Task {
public:
    Task(int id, int priority) : taskId(id), taskPriority(priority), taskStatus(TaskStatus::WAITING) {}
    virtual ~Task() {}

    int getTaskId() const { return taskId; }
    int getTaskPriority() const { return taskPriority; }
    TaskStatus getTaskStatus() const { return taskStatus; }

    virtual void execute() = 0;

    void setTaskStatus(TaskStatus status) { taskStatus = status; }

private:
    int taskId;
    int taskPriority;
    TaskStatus taskStatus;
};

// 计算密集型任务类
class ComputeIntensiveTask : public Task {
public:
    ComputeIntensiveTask(int id, int priority) : Task(id, priority) {}
    void execute() override {
        // 这里可以添加大规模矩阵运算等计算密集型操作
        std::cout << "ComputeIntensiveTask " << getTaskId() << " is running." << std::endl;
        setTaskStatus(TaskStatus::COMPLETED);
    }
};

// I/O密集型任务类
class IOIntensiveTask : public Task {
public:
    IOIntensiveTask(int id, int priority, std::string resource) : Task(id, priority), resourcePath(resource) {}
    void execute() override {
        // 这里可以添加文件读取或网络请求等I/O密集型操作
        std::cout << "IOIntensiveTask " << getTaskId() << " is running on " << resourcePath << std::endl;
        setTaskStatus(TaskStatus::COMPLETED);
    }

private:
    std::string resourcePath;
};

评论

0 条评论,欢迎与作者交流。

正在加载评论...