簡體   English   中英

如何驗證線程中的命令是否已在Java中成功啟動並且可以啟動另一個線程?

[英]How to verify if command in the thread is successfully started in Java and another thread can be started?

我有幾個線程,其中一個正在使用ProcessBuilder運行HTPP服務。

HttpThread class

ProcessBuilder pb = new ProcessBuilder(command);
Process process pb.start();
process.waitFor();
int exitValue = process.exitValue();

我想在啟動服務時讓另一個線程等待。 最好的方法是什么?

在我看來,睡眠似乎不是一個好辦法。 也許可以使用某些方法HttpThread.isReady(boolean b),但我無法設置此標志,因為啟動命令后,服務將保持運行狀態,並且線程將在服務完成時等待。

另一種方法是再創建一個線程並進行套接字連接,但也不確定是否是一個好的解決方案。

你怎么看?

這聽起來像是生產者/消費者問題的一個實例。 您為什么不只使用wait/notify機制?

這是一個學術例子

您的選擇相當有限,因為HTTP服務存在於JVM之外。

  1. 您可以使用進程間通信(例如套接字)來輪詢其他進程。
  2. 您可以阻塞,直到進程將就緒消息寫入Process.getOutputStream()為止。

暫無
暫無

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

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