C++中有一個獨立於平臺的進程分叉方法嗎?標準是否提供任何功能或庫?C++中是否存在一種獨立於平臺的進程分支方式,比如某些標準庫?我怎樣才能讓我的代碼便攜?
爲了創建一個新的線程,有std::thread
,我相信,當我們實現這個標準時,我認爲它使用了操作系統的底層線程模型。
是否有這樣的創建新流程的類比?
在Linux中,我可以通過使用fork()
系統調用來分叉一個新進程。但是這在Windows中不起作用。所以,我正在尋找一種叉式進程的方法,它允許在多個平臺上重複使用相同的代碼。
早些時候提出的一些答案提出了類似的問題,如this和this,建議使用QThread,OpenThread,Boost,SFML等。但是,目前標準提供了哪種方式?
如果不是,我如何使自己的代碼更便於攜帶?到目前爲止,我只需要它在Windows和Linux上工作,但是我想知道是否還有一種方法。
沒有平臺無關的方式來fork()一個進程。而已。這不包括在任何標準中。 POSIX是Linux的標準。我一直聽說Windows的POSIX兼容層。你不妨調查一下。 –
這個問題與您鏈接的問題完全相同;在任何已發佈的標準中都沒有關於創建新流程的規定,這就是爲什麼所有答案都涉及第三方庫的原因。 –
特別感興趣的可能是[this](http://stackoverflow.com/a/10602727/8877)答案,其中指出「...現代系統上的線程和進程之間的實際差異很小;」你可能並不需要多個進程。 –