package thrift;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ArithmeticClient {
public ArithmeticClient() {
ExecutorService executorService = Executors.newFixedThreadPool(10);
for (int i=0; i < 10; i++) {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
executorService.execute(new Worker());
}
executorService.shutdown();
}
private class Worker implements Runnable {
public void run() {
try {
TTransport transport = new TSocket("localhost", 8080);
TProtocol protocol = new TBinaryProtocol(transport);
ArithmeticService.Client client = new ArithmeticService.Client(protocol);
transport.open();
long addResult = client.add(100, 200);
System.out.println("Add result: " + addResult);
long multiplyResult = client.multiply(20, 40);
System.out.println("Multiply result: " + multiplyResult);
transport.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new ArithmeticClient();
}
}