在Java中,我們可以使用新線程(Runnable r)輕鬆創建新的線程。但是,它使用來自本地機器的線程。Java在另一臺機器上運行線程
有沒有辦法連接到另一臺機器(通過ssh)並在該機器上的新線程上運行一個函數?
在Java中,我們可以使用新線程(Runnable r)輕鬆創建新的線程。但是,它使用來自本地機器的線程。Java在另一臺機器上運行線程
有沒有辦法連接到另一臺機器(通過ssh)並在該機器上的新線程上運行一個函數?
有沒有辦法連接到另一臺機器(通過ssh)並在該機器上的新線程上運行一個函數?
簡短的回答是否定的。有許多Java implementations of SSH,它們允許您在另一個系統上登錄並運行命令。這意味着您可以在另一個系統上運行另一個Java(JVM)實例。您可以在本地線程中運行此遠程命令,但不能在遠程系統上分配「線程」。
長時間的回答是,還有很多其他的遠程操作方式,通常意味着在遠程機器上運行某種類型的服務器,它接受請求並返回響應。那麼有很多方法來加密遠程協議。通過HTTP向Web服務器發送SSL請求是一種機制。另一個是RMI over SSL。
您可以使用Java RMI在另一臺機器上運行代碼。我從來沒有做過,但顯然你可以通過SSH來做到這一點。通過隊列,然後將其拾起,並在machine2執行MACHINE1發送的Runnable(與Jackson連載) -
我使用亞馬遜的Simple Queue Service實施類似的措施。簡單隊列服務具有用於小規模使用的免費層,但是有許多開源消息庫/程序,例如HornetQ或RabbitMQ。