1、C++沒有專門的並行程式設計模式,但是可以用多執行緒,多程序來模擬並行程式設計。2、例如在linux下,可以用fork函式來呼叫新程序。 fork函式是計算機程式設計中的分叉函式。返回值: 若成功呼叫一次則返回兩個值,子程序返回0,父程序返回子程序標記;否則,出錯返回-1。 fork函式將執行著的程式分成2個(幾乎)完全一樣的程序,每個程序都啟動一個從程式碼的同一位置開始執行的執行緒。這兩個程序中的執行緒繼續執行,就像是兩個使用者同時啟動了該應用程式的兩個副本。 函式原型 pid_t fork( void); (pid_t 是一個宏定義,其實質是int 被定義在#include<sys/types.h>中) 返回值: 若成功呼叫一次則返回兩個值,子程序返回0,父程序返回子程序ID;否則,出錯返回-1 函式說明 一個現有程序可以呼叫fork函式建立一個新程序。由fork建立的新程序被稱為子程序(child process)。fork函式被呼叫一次但返回兩次。兩次返回的唯一區別是子程序中返回0值而父程序中返回子程序ID。 子程序是父程序的副本,它將獲得父程序資料空間、堆、棧等資源的副本。注意,子程序持有的是上述儲存空間的“副本”,這意味著父子程序間不共享這些儲存空間。 UNIX將複製父程序的地址空間內容給子程序,因此,子程序有了獨立的地址空間。在不同的UNIX (Like)系統下,無法確定fork之後是子程序先執行還是父程序先執行,這依賴於系統的實現。所以在移植程式碼的時候不應該對此作出任何的假設。
1、C++沒有專門的並行程式設計模式,但是可以用多執行緒,多程序來模擬並行程式設計。2、例如在linux下,可以用fork函式來呼叫新程序。 fork函式是計算機程式設計中的分叉函式。返回值: 若成功呼叫一次則返回兩個值,子程序返回0,父程序返回子程序標記;否則,出錯返回-1。 fork函式將執行著的程式分成2個(幾乎)完全一樣的程序,每個程序都啟動一個從程式碼的同一位置開始執行的執行緒。這兩個程序中的執行緒繼續執行,就像是兩個使用者同時啟動了該應用程式的兩個副本。 函式原型 pid_t fork( void); (pid_t 是一個宏定義,其實質是int 被定義在#include<sys/types.h>中) 返回值: 若成功呼叫一次則返回兩個值,子程序返回0,父程序返回子程序ID;否則,出錯返回-1 函式說明 一個現有程序可以呼叫fork函式建立一個新程序。由fork建立的新程序被稱為子程序(child process)。fork函式被呼叫一次但返回兩次。兩次返回的唯一區別是子程序中返回0值而父程序中返回子程序ID。 子程序是父程序的副本,它將獲得父程序資料空間、堆、棧等資源的副本。注意,子程序持有的是上述儲存空間的“副本”,這意味著父子程序間不共享這些儲存空間。 UNIX將複製父程序的地址空間內容給子程序,因此,子程序有了獨立的地址空間。在不同的UNIX (Like)系統下,無法確定fork之後是子程序先執行還是父程序先執行,這依賴於系統的實現。所以在移植程式碼的時候不應該對此作出任何的假設。