多任务,多道程序和多处理之间的区别是什么
这经常出现在我的大学操作系统考试中,我找不到一个好的答案.我对多任务和多道程序有很多了解,但需要确认一下.
multithreading operating-system multiprocessing multitasking
我有一些计时代码,我用它来衡量给定代码片段的运行时间:
struct time_data {
    std::chrono::steady_clock::time_point start, end;
    auto get_duration() const {
        return end - start;
    }
    void print_data(std::ostream & out) const {
        out << str();
    }
    std::string str() const {
        static const std::locale loc{ "" };
        std::stringstream ss;
        ss.imbue(loc);
        ss << "Start:    " << std::setw(24) << std::chrono::nanoseconds{ start.time_since_epoch() }.count() << "ns\n";
        ss << "End:      " << std::setw(24) << std::chrono::nanoseconds{ end.time_since_epoch() }.count() << "ns\n";
        ss << "Duration: " << std::setw(24) << std::chrono::nanoseconds{ get_duration() }.count() << "ns\n";
        return ss.str();
    }
    static friend …我正在为Linux设计一个专用的syslog-processing守护进程,它需要健壮且可扩展,我正在讨论多线程与多进程.
多线程的明显反对意见是复杂性和令人讨厌的错误.由于IPC通信和上下文切换,多进程可能会影响性能.
您会推荐基于流程的系统(如Apache)还是多线程方法?