我正在寻找能够在Java的这样的解决方案:Java进程暂停和继续
- 生成一个进程。
- 挂起它(就像kill -STOP在Linux中一样)。
- 继续暂停的进程(如在Linux中kill -CONT)。
- 在运行时读取/写入其标准输入/输出管道。
- 工作(至少)Linux和Windows。
据我所知,Java标准版只实现第一个和第四个,但不是第二个也不是第三个。
我该怎么办?
我正在寻找能够在Java的这样的解决方案:Java进程暂停和继续
据我所知,Java标准版只实现第一个和第四个,但不是第二个也不是第三个。
我该怎么办?
没有办法从Java“直接”做。
您将需要为Windows/Linux做一些特定的事情,在每种情况下执行外部程序或调用本机代码。
在Linux上,您可以按照您的建议使用kill
。
在Windows上,您可以拨打SuspendThread()
,或者也可以启动SysInternals工具'PsSuspend'。有一些信息,可以帮助你在这里:
How to pause/resume any external process under Windows?
How to suspend/resume a process in Windows?
如果你想从Java调用本地代码,JNIWrapper可以帮助你。另外,如果你需要产生进程的PID,那么你可能需要通过本地代码启动,因为Java不会给你它们的PID。
你不太清楚。你可以使用['wait' /'notify'](http://docs.oracle.com/javase/tutorial/essential/concurrency/guardmeth.html)。你可以使用['java.util.concurrent'](http://shazsterblog.blogspot.co.uk/2011/12/comparison-of-countdownlatch.html)包。 –
另外,您可以在java中执行shell命令,通过它可以轻松实现2和3。也许还有其他一些方法。 – Ragavan
该解决方案适用于线程。它也适用于流程吗? – lilezek