-3
Ich rufe einen Rest-Client-Dienst mit Executor Service. Ich überprüfe mal in seriell oder parallel, es dauert die selbe Zeit.Java mit ExecutorService beschleunigt nicht das Programm
List<String> exeParallel(int start, int end){
List<String> people = new ArrayList<String>();
byte maxthreads;
int cores = Runtime.getRuntime().availableProcessors();
maxthreads = (byte) ((cores > 2)?cores-1:1);
ExecutorService executor = Executors.newFixedThreadPool(maxthreads);
for(Long i= start; i <= end; i++){
Callable<ServiceResponse> callTask = getTask(i);
Future<ServiceResponse> future = executor.submit(callTask);
if(future != null){
String result = .....;
people.add(result);
}
}
private Callable<ServiceResponse> getTask(int num){
return new Callable<ServiceResponse>(){
@Override
public ServiceResponsecall() throws Exception {
ServiceRestClient serviceRestClient =ServiceRestClient.getInstance();
return serviceRestClient.callservice(num);
}
};
}
Nun, wenn Sie blockieren mit 'Get()' auf die Zukunft (das ist der relevante Code, den Sie mit '....' ersetzt haben), wird es sicherlich die gleiche Zeit dauern. Was willst du machen? – Tunaki
@Tunaki Ich möchte die Antwort nehmen und die relevanten Daten, die ich brauche, in eine Zeichenfolge kopieren – userit1985