Bonjour à tous,
je m'interrroge sur la manière la plus correcte de procéder. J'ai une classe A qui instancie une thread B. The thread B à besoin de lancer des méthodes de A.
Est il plus correcte de passer par une inner class :
Ou alors puis je sans problème passer l'instance de A à B :
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 public class A { public void A() { B theB = new B(); theB.start(); } public doSomethingInA() { } public class B implements Runnable { public void start() { Thread thread = new Thread(this); thread.start(); } public void run() { while(thread != null) { doSomethingInA(); } } } }
Cette dernière solution à ma préférence au niveau clareté du code et découpage des fichiers mais est elle aussi efficace que l'autre. Ne développant que occasionnellement en JAVA j'ai un peu peur des conséquences que pourrait avoir l'une ou l'autre des méthodes (fuite mémoire, performance, ...)
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
31
32
33 public class A { public A() { B theB = new B(this); theB.start(); } public doSomethingInA() { } } public class B implements Runnable { private A instanceA public B(A instanceA ) { this.instanceA = instanceA } public void start() { Thread thread = new Thread(this); thread.start(); } public void run() { while(thread != null) { instanceA.doSomethingInA(); } } }
merci pour vos conseils
Partager