簡體   English   中英

如何通過將每個命令分配給線程來在C ++中同時執行linux系統命令?

[英]How can I execute linux system commands at same time in C++ by assigning each command to threads?

我想通過將它們分配給兩個不同的線程來執行顯示相同輸出的不同網絡命令,它們應並行執行並使用c ++

使用線程解決此問題毫無意義,因為執行外部實用程序(“ Linux系統命令”)的唯一方法是先fork()一個子進程,然后再exec()該實用程序)。

由於您不能在線程內部exec() -它會替換整個過程,而不僅是在其中被調用的線程-您最好還是順其自然,並使用多個進程。

您可以創建任意數量的子進程(在合理范圍內),並在每個子進程中exec()一個不同的外部命令。 各個過程將獨立運行。

您可以在線程內執行,如果這是在unix上執行的(我假設您可以創建一個函數),請調用pthread_create並將其傳遞給該函數。 在該函數內部只需執行system_call。 然后對pthread_create返回的線程ID進行pthread_join,並等待其返回。 然后,您知道它已完成執行,可以退出或繼續執行程序。 類似的事情也將在Windows上運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM