2010-10-15 93 views
1

我有一個Java應用程序(準確地說是一種遺傳算法),它週期性地啓動本機進程(適應函數),等待它完成並讀取它輸出的文件。但是,本機進程只能運行一次,因爲它從conf文件讀取並綁定了幾個套接字。有沒有辦法虛擬化本地進程,以便我可以同時運行多個副本?如何運行一個進程的多個實例?

回答

1

從標籤上看,我覺得你問如果有機器虛擬化的Java API。可悲的是,沒有。

當然,你可以使用Java(這樣的原生膠代碼或腳本是必要的)來驅動任何操作系統可以做,所以你可以用java虛擬機產卵運行的健身計劃。雖然可能會很痛苦。

綁定在conf文件中指定的端口?你可以使用一個程序,如:

  1. 搶全局鎖
  2. 選擇端口隨機大把
  3. 編輯使用這些端口
  4. 菌種健身計劃
  5. 解除鎖定的配置文件

要同時運行幾個?

更妙的是,如果你能告訴程序到哪裏尋找它的配置文件,你可以這樣做而不鎖:

  1. 複製配置文件到臨時位置
  2. 選擇一個隨機大把港口
  3. 編輯配置文件的副本,請使用這些端口
  4. 菌種使用配置文件的副本健身計劃的

有什麼用?

+0

是的,您可以指定要在conf文件中使用哪些端口。 Althoud我無法告訴程序要使用哪個conf文件,我可以啓動proggram,覆蓋conf文件,啓動另一個綁定其他端口的實例。 – mbatchkarov 2010-10-16 18:44:10

1

將它叉或使用線程?

1

可以從命令行同時運行進程嗎?

如果結合到同一個端口的時候,那麼它不看,我認爲它可以。

1

聽起來像是你需要修改的健身過程中或多個物理/虛擬機協調運行分佈式應用程序。

要進行分佈式路由,您的主程序需要連接到您要使用的每臺其他機器上的類似進程,並在需要進行健身計算時協調何時/要運行什麼。

爲什麼你的體能測試需要綁定端口?

+0

健身應用程序使用客戶端/服務器架構,兩部分通過UDP連接進行通信。 – mbatchkarov 2010-10-16 18:41:52