在Java中,我们可以使用新的Thread(Runnable r)轻松创建一个新的Thread。但是,它使用本地计算机中的Threads。
有没有办法连接到另一台机器(通过ssh)并在该机器上的新线程上运行一个函数?
答案 0 :(得分:2)
有没有办法连接到另一台机器(通过ssh)并在该机器上的新线程上运行一个函数?
简短的回答是否定的。有许多Java implementations of SSH允许您在另一个系统上登录和运行命令。这意味着您可以在另一个系统上运行另一个Java(JVM)实例。您可以在本地线程中运行此远程命令,但不能在远程系统上分叉“线程”。
答案很长,还有很多其他方法可以远程操作,这通常意味着在远程机器上运行某种服务器来接收请求并返回响应。然后有许多方法来加密远程协议。通过HTTP向Web服务器发出SSL请求是一种机制。 RMI over SSL是另一个。
答案 1 :(得分:0)
您可以使用Java RMI在另一台计算机上运行代码。我从来没有这样做过,但显然你可以通过SSH做到这一点。
答案 2 :(得分:0)
我使用亚马逊的Simple Queue Service - machine1发送的Runnables(用Jackson序列化)通过队列实现了与此类似的东西,然后在机器2上拾取并执行。 Simple Queue Service有一个免费的小规模使用层,但有很多开源消息库/程序,例如HornetQ或RabbitMQ。