如何釋放由CreateProcess建立的子程序

2023-05-26 18:55:14 字數 3311 閱讀 2694

1樓:育知同創教育

2.一些強制退出子程序會造成惡果的方式不需說明。

懇求大俠們來幫我解決下。

偶百思不得其解,望您解答疑惑。

我覺得這個就是乙個程序通訊的問題,父程序在結束之後發訊息給子程序,通知子程序退出。

-解決方案---

threadid是你在建立乙個執行緒時候就設定的了,你看看你的createthread()是不是把它設為null了,是的話就改一下。

-解決方案---

createprocess 最後的引數lpprocess_information 中包含了返回的執行緒id

typedef struct _process_information process_information,--解決方案---

我覺得這個就是乙個程序通訊的問題,父程序在結束之後發訊息給子程序,通知子程序退出。

-解決方案---

子程序執行完自己的事情之後應該會正常退出。。。

你是想要子程序在自己的事情還沒執行完時發現父程序已經結束的情況下結束自己吧。

我剛用createprocess呼叫mplayer來**多**。程式要退出的時候就給mplayer程序傳送quit命令。命令是通過命令管道傳送的。

類似的,你這種情況應該也可以通過相似的方式來解決。

2樓:匿名使用者

createprocess 最後的引數lpprocess_information 中包含了返回的執行緒id

typedef struct _process_information process_information,

如何除錯createprocess建立的程序

3樓:蒙

宣告乙個"程序資訊"變數,將其位址傳給createprocess,作為最後乙個引數,建立成功後 用結束就行 process_information pi; createprocess(0,"路徑

python有什麼辦法可讓子程序正常結束主程序

4樓:深圳中宇視通科技****

的返回值是執行結果,用p命名沒什麼意義,建議用popen比較好控制,例如 import subprocessa = dir',shell = true)然後就可以用a.

kill()來殺程序。

5樓:匿名使用者

可以試試程序間通訊的方式。

子程序給主程序發訊號,然後主程序關閉。

如何完全殺掉帶鎖的程序並釋放資源

6樓:蘇小素

首先使用ps -ef命令確定要殺死程序的pid,然後輸入以下命令:

# kill -pid

注釋:標準的kill命令通常都能達到目的。終止有問題的程序,並把程序的資源釋放給系統。

然而,如果程序啟動了子程序,只殺死父程序,子程序仍在執行,因此仍消耗資源。為了防止這些所謂的「殭屍程序」,應確保在殺死父程序之前,先殺死其所有的子程序。

確定要殺死程序的pid或ppid

結束程序。# kill -l pid

l選項告訴kill命令用好像啟動程序的使用者已登出的方式結束程序。當使用該選項時,kill命令也試圖殺死所留下的子程序。但這個命令也不是總能成功--或許仍然需要先手工殺死子程序,然後再殺死父程序。

給父程序傳送乙個term訊號,試圖殺死它和它的子程序。

# kill -term ppid

killall命令。

killall命令殺死同一程序組內的所有程序。其允許指定要終止的程序的名稱,而非pid。

停止和重啟程序。

有時候只想簡單的停止和重啟程序。如下:

# kill -hup pid

該命令讓linux和緩的執行程序關閉,然後立即重啟。在配置應用程式的時候,這個命令很方便,在對配置檔案修改後需要重啟程序時就可以執行此命令。

如何正確使用子程序和子執行緒

7樓:育知同創教育

子程序就是被父程序建立或者啟動而來的,子執行緒是被父程序建立而來的。子程序作為乙個程序,與父程序屬於乙個級別,是平等的關係,只是父程序可以通過子程序控制代碼管理子程序罷了。父程序和子程序都擁有各自的獨立的虛擬程序位址,相互不干擾。

而子執行緒則不然。子執行緒從屬於程序,沒有程序子執行緒就無依無靠,就無法生存。雖然作業系統對cpu的排程是以執行緒為單位的,但是執行緒生活依賴程序,程序是執行緒的基地。

以上是子程序和子執行緒的基本區別。那麼針對這些區別,我們看看如何區別使用。子程序是擁有獨立空間的,執行時和父程序是互不干擾的,因此,子程序和父程序的通訊就不那麼容易了,需要借助程序通訊機制。

而子執行緒則在程序中,通訊很容易。所以,如果建立新的任務時,需要進行大量的通訊,且不想需要很大的代價,那麼還是用子執行緒比較好。

而子程序與父程序的位址空間的隔絕,一方面成為通訊的阻礙,另一方面也是乙個好處。如果建立的任務,需要操作一些資料,很可能會修改掉父程序的資料,這樣就帶來了麻煩。其實這也是設計程序間相互隔絕的初衷。

如果是這種需求,或者安全需求,或者你想限制子程序訪問父程序規定的資料,就需要使用這種方式,而不要使用執行緒。訪問資料時,通過程序間通訊機制,就可以很好的控制訪問。

8樓:塞寄靈

sendmessage是同步的,呼叫時,主線程要掛起,等待函式返回,再繼續執行。你可以改成postmessage,這個是非同步的,呼叫後立即返回。你試試,也許會有用。

為什麼python2.7中用process建立子程序的語句之前必須加#if

9樓:育知同創教育

這是 windows 上多程序的實現問題。在 windows 上,子程序會自動 import 啟動它的這個檔案,而在 import 的時候是會執行這些語句的。如果你這麼寫的話就會無限遞迴建立子程序報錯。

所以必須把建立子程序的部分用那個。

在什麼情況下需要建立程序

10樓:七彩虹科技****

程式只要啟動了就擁有乙個屬於自己的程序,是的,一般情況下不必呼叫createprocess建立新程序。但是在要完成某些特殊任務的情況下就是要啟動乙個其他的程式,建立新程序。想想windows的外殼explorer(就是windows的操作介面,它自己本身是乙個程序),當我們在使用windows開啟乙個程式時,explorer就會呼叫createprocess啟動該程式。

神經遞質由突觸前膜釋放還是由突觸小泡釋放

a 神經元受 copy到刺激時,鈉離子內流,細胞膜兩bai側的電位表現為膜du內為正 膜外為負並產生興奮zhi 當興奮傳dao導到神經末梢時,貯存於突觸小泡內的神經遞質就會釋放出來.且神經元受到刺激時,需要達到一定的強度才能引起興奮,故a選項錯誤 b 神經遞質存在於突觸小體的突觸小泡中,由突觸前膜釋...

如何才能釋放自己的壓力,怎樣才可以釋放自己的心裡壓力

如何緩解壓力 第一,坦然面對和接受自己的緊張。你應該想到自己的緊張是正常的,很多人在某種情境下可能比你更緊張。不要與這種不安的情緒對抗,而是體驗它 接受它。要訓練自己象局外人一樣觀察你害怕的心理,注意不要陷入到裡邊去,不要讓這種情緒完全控制住你 如果我感到緊張,那我確實就是緊張,但是我不能因為緊張而...

怎樣讓自己的情緒得到釋放?如何學會釋放自己的情緒

首先問你自己,你的焦慮是否有效或無效。你的焦慮是否會在未來一兩天帶來一系列行為?你會做些什麼來消除這種焦慮?它會一項項地發展下去嗎?如果不是,這是無效的焦慮。第二點就是,你是否願意接受不確定性?所有焦慮的核心問題之一是你對待不確定性的態度。我對人們說的一件事情是在不確定的日子裡,你想一下你做的所有事...