0

我正在freeswitch中的两个应用程序之间进行通信,我已经从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

因此,您将拥有 5 个具有相同公共 ID 的不同进程。

于 2013-10-16T05:57:52.993 回答