2013-06-13 22 views
0

這個問題不是特定於任何編程語言,但我想知道多處理和多線程之間的區別。這兩個術語經常會引起他們理解的混亂。有人請解釋他們,他們的差異和相似之處。是類似於多線程的多處理嗎?

+0

多處理不是一個常用術語。多處理器是指CPU硬件,而多線程通常用於描述軟件(但可以作爲硬件進程完成) – axon

回答

1

多線程是指具有多個線程的應用程序在多進程中運行,其中多進程是指跨多個OS級進程組織的應用程序。

+0

在多處理器系統中,同一個進程的不同線程是否可以在不同的處理器上運行? – user2181750

+0

單個進程的不同線程將在單個處理器上同時運行。我認爲特定進程的一個線程可能不會在另一個進程中運行。 –

+0

如果其他處理器空閒(不忙),那麼可以爲不同處理器的不同線程分配不同的處理器,或者總是分配單處理器,其他處理器是否空閒並不重要? – user2181750

0

您可以在單個處理器上執行多處理和多線程。

的區別在於內存空間:在同一進程中

  • 兩個線程可以共享內存空間,並在相同的數據操作。
  • 兩個進程在內存使用上完全獨立。他們可以通過使用信號燈,監視器或其他已知方法同步他們的實踐。
+0

在多處理器系統中,同一進程的不同線程可以單獨或總是分配不同的處理器(如果它們是空閒的)一個處理器,無論其他處理器是否免費都無關緊要? – user2181750

+0

您的回答對我也很有幫助。謝謝 – user2181750

+0

當然,您可以使用多個線程進行處理,每個處理器都使用特定的處理器。但是一個線程實例一次由一個處理器執行。 – ARMBouhali

0

多處理和多線程是共享任務的兩種不同技術。

多處理:這裏多個進程並行運行,可以共享公共資源。

多線程:這裏多於一個線程(單個進程的一部分)並行運行。

+0

感謝您的回答。 – user2181750