Un peu confondu pour commencer en en utilisant ExecutorService, j'ai une application clients/serveur, où chaque client doit exécuter quelques méthodes par ordre, ainsi que le serveur tout en se partageant quelques données, j'ai eu des problèmes en implémentant de simples threads donc j'ai pensé à refaire avec ExecutorService, mais j'ai senti un conflit en suivant les tutoriels :
- Est ce que cette ExecutorService prend en charge mes threads clients ou leurs tâches, est ce que ce code est bon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 public class ClientThread implements Runnable{ private int id; private Socket socket; public ClientThread(int id, Socket s){ this.id = id; this.socket = s; } public void run(){ méthodeTache1(); méthodeTache2(); ... } méthodeTache1(){} méthodeTache2(){} } public class Server{ public void runServer(){ Runnable serverTask = () -> { ServerSocket srv = new ServerSocket(Integer.valueOf(txtPort.getText())); ExecutorService execClients = Executors.newFixedThreadPool(nbrClients); for(int i = 0 ; i < nbrClients ; i++){ execClients.submit(new ClientThread(i, srv.accepte())); } } Thread serverThread = new Thread(serverTask); serverThread.start(); } }
- Est ce que l'ExecutorService s'en charge de démarrer les thread clients sans que je mette start() ?
svp besoin d'un cours pour débutants dans ce domaine
merci
Partager