0

私は freeswitch で 2 つのアプリケーション間の通信に取り組んでおり、Java プログラムから次のことを行いました。

ProcessBuilder processBuilder = new ProcessBuilder( "/bin/bash", "-c", "cd /usr/local/freeswitch/bin && ./fs_cli -x \"originate loopback/1234/default &bridge(sofia/internal/1789)\"" );
processBuilder.start();

正常に動作しています。システム機能をテストするために同じプログラムを何度も実行したいだけです。それ以上実行する必要がある場合は、通話中の通信チャネル間で共通の ID を共有したいだけです。共通変数を共有できる方法を提案してください。助けてください

4

1 に答える 1

0

クラスにランナブルを実装させる

class myRunnable implements Runnable
{

    int commonId = 1234; // all threads have this same common id
    public void run()
    {

         // do something with the common id

         // all threads share this common code
         ProcessBuilder processBuilder = new ProcessBuilder( "/bin/bash", "-c", "cd /usr/local/freeswitch/bin && ./fs_cli -x \"originate loopback/1234/default &bridge(sofia/internal/1789)\"" );
         processBuilder.start();
    }
}

スレッドを作成して開始する

int i=0,n=5;
for(i=0;i<n;i++) new Thread(new myRunnable).start(); // this will fire off 5 threads

したがって、同じ共通 ID を持つ 5 つの異なるプロセスがあります。

于 2013-10-16T05:57:52.993 に答える