回答
好吧,這是很久以前,我很困惑,可能忘了尋找答案。謝謝,但實際上有辦法把第一部分的關懷和答案是Java遠程方法調用或簡化RMI: http://en.wikipedia.org/wiki/Java_remote_method_invocation
我要刪除我的問題的第二部分,因爲我根本不記得是什麼我一直在!
我不完全確定你在上述文章中的含義 - 我懷疑他們是不同的問題,第二個與Glassfish有關,我可能無法回答。
但是,對於第一個我可以如果您的意思是線程而不是進程 - Java有一個等待/通知方法對,它們結合使用可以啓動n個子線程並等待它們全部完成,然後再繼續處理。我認爲這是你需要的,而不是從主進程中停止子進程 - 在併發編程中這絕不應該這樣做,因爲你無法保證你在子進程中的位置。看看:http://www.javamex.com/tutorials/synchronization_wait_notify_4.shtml
對於你的第一部分,在java.util.concurrent.locks
有一些類可以幫助你。看看LockSupport
。
問題的第一部分的答案取決於您所談論的「過程」是Process
還是Thread
。但是在這兩種情況下,都沒有好的辦法導致不合作的流程「停止」。
在
Process
情況下,操作系統可能提供支持中止進程,但Java進程API不提供此功能。所以你需要使用非便攜的方式(例如JNI/JNA)來實現這一點。在
Thread
情況下,也有叫suspend
和resume
方法,但它們不應該被使用,因爲它們根本不安全。 Javadoc非常清楚地說道!
因此,如果您實施掛起/恢復機制,則需要您的流程參與/合作。在Thread
的情況下,您可以使用低級同步原語或類似CyclicBarrier類來實現掛起/恢復機制。
- 1. 如何阻止其他進程重新啓動Windows?
- 2. 如何重新啓動Node.js子進程
- 3. 如果Quartz Scheduler死亡,我該如何阻止它啓動的子進程?
- 4. 重新啓動後阻止USB_DEVICE_ATTACHED啓動應用程序
- 5. 停止postgres進程重新啓動 - mac
- 6. 如何管理ruby工作進程的啓動,停止和重新啓動?
- 7. Java應用程序在JRE更新後阻止服務器重新啓動
- 8. 主管在重新啓動孩子時是否阻止呼叫?
- 9. 阻止服務重新啓動
- 10. 如何防止進程啓動,如果它之前啓動?
- 11. 如何在進程崩潰後重新啓動種子節點?
- 12. 如何重新啓動Java小程序?
- 13. Tomcat進程阻止從重新綁定到重新啓動porton的其他進程
- 14. 如何重新啓動一個進程它死了
- 15. Java - 對象運行一個外部進程:如何阻止它?
- 16. 如何讓子進程在父進程重新啓動時死亡
- 17. 重新啓動進程,如果它在Bash中運行
- 18. Java - 如何啓動和忘記進程
- 19. 如何阻止Windows資源管理器和Internet Explorer自動重新啓動?
- 20. 如何阻止cherrypy在Debian上自動更新進程名稱?
- 21. 啓動一個進程列表,然後終止它們
- 22. 如何使用-Djava.library.path重新啓動Java進程?
- 23. 如何停止/啓動或重新啓動計時器線程
- 24. 如何在Windows上終止adb.exe?什麼讓重新啓動它?
- 25. 如何使用Parallel :: ForkManager完成重新啓動子進程
- 26. 如何捕捉新進程的啓動和停止?
- 27. 如何殺死java中的進程啓動的子進程?
- 28. Golang:如何在二進制更新時自動重啓進程?
- 29. 保持線程空閒或殺死它們/重新啓動它們?
- 30. 如何在啓動時啓動Windows服務,並防止用戶停止/重新啓動它?
你應該把你的問題分成兩個主題。 – DerMike 2010-01-24 02:09:26
爲了鼓勵OP做正確的事情,請不要回答這個問題的第二部分。 – 2010-01-24 02:19:21
到OP - 請編輯您的問題擺脫邏輯無關的第二部分...或要求某人爲您做。另外,如果您將其作爲一個新問題提出,請嘗試提供更多詳細信息和示例。我(一)不能解決你問的問題。 – 2010-01-24 02:29:24