Je suis nouveau sur IntelliJ et Java en général. J'essaie d'apprendre le multithreading et je suis tombé sur la classe Executors.IntelliJ ne peut pas résoudre le symbole "newFixedThreadPool"
Je voulais donc tester ceci, voici un exemple de mon code.
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class LegController {
private List<Runnable> legs;
private ExecutorService execute;
public LegController() {
legs = new ArrayList<>();
for (int i = 0; i < 6; i++) {
legs.add(LegFactory.getLeg("LEFT"));
}
execute = new Executors.newFixedThreadPool(6);
}
public void start(){
//TODO
}
}
Mais j'obtiens une erreur: "Impossible de résoudre le symbole 'newFixedThreadPool'". J'ai essayé "Invalider le cache et redémarrer" mais cela n'a pas aidé, j'ai essayé de synchroniser et reconstruire le projet, mais cela n'a pas fonctionné non plus.
Je ne comprends pas d'où vient ce problème car la classe Executors est importée. En outre, il y avait l'auto-complétion pour les méthodes statiques d'Executors. Peut-être qu'il y a un problème dans l'importation, mais si oui, comment pourrais-je le réparer?
Je suppose que vous voulez 'execute = Executors.newFixedThreadPool (6);', c'est-à-dire sans le mot-clé 'new', ce qui oblige le compilateur à attendre un appel de constructeur (et n'appelez pas un constructeur). – Thomas
également il n'existe pas de méthode Executors.newSingleThreadExecutor (int). –