Java では、new Thread(Runnable r) を使用して新しいスレッドを簡単に作成できます。ただし、これはローカル マシンのスレッドを使用します。
(ssh 経由で) 別のマシンに接続し、そのマシンの新しいスレッドで関数を実行する方法はありますか?
Java では、new Thread(Runnable r) を使用して新しいスレッドを簡単に作成できます。ただし、これはローカル マシンのスレッドを使用します。
(ssh 経由で) 別のマシンに接続し、そのマシンの新しいスレッドで関数を実行する方法はありますか?
(ssh 経由で) 別のマシンに接続し、そのマシンの新しいスレッドで関数を実行する方法はありますか?
短い答えはノーです。別のシステムでログインしてコマンドを実行できるSSH の Java 実装が多数あります。これは、別のシステムで Java (JVM) の別のインスタンスを実行できることを意味します。このリモート コマンドはローカル スレッドで実行できますが、リモート システムで「スレッド」をフォークすることはできません。
長い答えは、操作をリモート化する方法は他にもたくさんあるということです。通常、リモート マシンで何らかのサーバーを実行して、リクエストを受け取ってレスポンスを返すことを意味します。リモーティング プロトコルを暗号化するには、さまざまな方法があります。Web サーバーへの HTTP 経由の SSL 要求は、1 つのメカニズムです。 RMI over SSLは別の方法です。
Java RMI を使用して、別のマシンでコードを実行できます。私はやったことはありませんが、どうやらSSH経由でこれを行うことができます。
Amazon のSimple Queue Serviceを使用して、これと同様のものを実装しました。 machine1 は Runnables ( Jacksonでシリアル化) をキューを介して送信し、それを取得して machine2 で実行しました。Simple Queue Service には小規模な使用向けの無料利用枠がありますが、HornetQやRabbitMQなどのオープンソースのメッセージング ライブラリ/プログラムが多数あります。