程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> cpu-java多進程調度的問題,求大神幫忙。

cpu-java多進程調度的問題,求大神幫忙。

編輯:編程綜合問答
java多進程調度的問題,求大神幫忙。

我是使用ffmpeg.exe來進行視頻格式的轉換的:
第一:我執行一個main方法,這時(java.exe)這個進程就會被load到內存中被執行,然後繼續執行main的主線程。
第二:這時我又開了一個其他線程,來執行視頻的格式轉換,此時會幫我新創建出一個新進程(ffmpeg.exe)來。
第三:這時候出現了兩個進程,隨之而來的也出現了問題。

經過分析測試發現:
1、只有java.exe進程結束後,才會執行ffmpeg這個進程。這並不是我想要的。
2、我需要的執行順序是這樣:先執行java.exe進程,再轉碼進程ffmpeg.exe執行完,然後再繼續java.exe進程
3、因為在執行ffmpeg.exe這個進程中,我需要通過java.exe進程 來檢測ffmpeg.exe進程的視頻轉碼是否完成,返回給客戶端,判斷是否繼續執行

我的問題:
1、java在創建進程的時候是否可以設置該進程的優先級?
2、我可以通過java來獲取一個進程的執行時間麼?
3、為什麼只有在java.exe進程結束後才會執行ffmpeg.exe進程?
4、默認的cpu調度進程的算法是什麼算法啊?(windows)

特別說明:
1、可能我的表達不是很清楚,各位大神的幫忙,小弟不勝感激。
2、文字會比較多,如果看不太懂,我可以具體說說

最佳回答:


按照我的理解,你的需求就是在java的主進程中調用一個ffmpeg.exe,這個在java中應該是這樣的代碼:
String[] cmdArray = buildComStringArray(cmd);//忽略實現cmd就是你的fmpeg.exe
ProcessBuilder pb = new ProcessBuilder(cmdArray);
pb.redirectErrorStream(true);
Process child = pb.start();

然後就可以使用child.waitFor();等待結束後繼續你的java其他業務邏輯

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved