【发布时间】:2013-12-09 07:52:20
【问题描述】:
我想知道:
- 多道程序
- 多线程
- 并行处理
据我了解,我们正在使用多线程来实现多道程序。并行处理应该和多道程序一样,还是和硬件有关?
谢谢
【问题讨论】:
标签: multithreading parallel-processing
我想知道:
据我了解,我们正在使用多线程来实现多道程序。并行处理应该和多道程序一样,还是和硬件有关?
谢谢
【问题讨论】:
标签: multithreading parallel-processing
Multiprogramming 描述了您能够同时在一台计算机上运行多个程序(与旧的例如 DOS 系统相比,一次只能运行一个程序)(有时也称为多任务处理)-> multiprogramming
多线程必须在描述上有所不同:-> multithreading
硬件多线程或架构:一个处理器能够并行运行多个线程(实际上,反例:多道程序)
软件多线程:当一个进程由多个线程组成时,这些线程并不相互独立,就像进程一样,尤其是那些线程在处理相同数据时可能存在竞争条件 (-> difference between thread & process )
并行处理描述了有一些 (> 1) CPU 以任何形式一起工作。这包括一台具有多核的 PC、一台具有多个处理器(例如卡上)的服务器,甚至是一个计算机网络 -> Parallel processing
【讨论】:
我通常看到您使用的第二和第三个术语的方式:
并行处理是指同时运行的两个或多个线程,每个线程处理自己的数据。也就是说,除了启动和停止之外,几乎没有同步问题。 多线程 指的是几乎相同的东西,除了线程共享数据并且必须非常小心这一点。也就是说,同步就是一切。
正确的并行处理并不比运行单个线程难多少。 (大多数平台都提供各种支持以帮助保持简单。)多线程是一项非常艰巨的工作。
【讨论】: