Linux多进程(五) 进程池 C++实现-三、进程对象

时间:2024-04-26 22:57:56

我们将一个进程也视为一个对象,那么一个进程就需要以下的元素

  • fd0 : 管道,通过这个管道接收主进程的数据
  • fd1:管道,通过这个管道给主进程发数据
  • pid:子进程的pid
  • isbusy:此子进程是否在忙
class Process
{
public:
    Process(int fd0, int fd1, pid_t process_pid) : _fd0(fd0), _fd1(fd1), _process_pid(process_pid), _isbusy(false) {}

    ~Process() {}

    // 获取父进程要写入的管道
    int get_fd0() { return _fd0; }

    // 获取子进程要写入的管道
    int get_fd1() { return _fd1; }

    // 获取子进程pid
    pid_t get_process_pid() { return _process_pid; }

    // 获取是否忙碌标志位
    bool get_isbusy() { return _isbusy; }

    // 修改标志为
    void set_isbusy(bool flag) { _isbusy = flag; }

private:
    int _fd0;           // 父进程要写入的管道
    int _fd1;           // 父进程要读入的管道
    pid_t _process_pid; // 子进程pid
    bool _isbusy;       // 是否忙碌标志位
};