Bonjour,
j'essaye de faire du multithreading en traitement d'images.
J'utilise pour l'instant ce type de code :
Code java : 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 public Image Dilatation(Image ImageATraiter) { final int var1 ; ... Thread T1 = new Thread() { public void run() { //Traitement de la moitié de l'image... en utilisant var1 } } Thread T2 = new Thread() { public void run() { //Traitement de l'autre moitié de l'image... en utilisant var2 } } T1.join() ; T2.join() ; ... return ImageResultat ; }
Pour que mes deux threads puissent utiliser var1, je dois la déclarer en dehors ET de mettre 'final'. Ceci me chagrine un peu car j'aurai par la suite des variables dont je souhaiterai modifier les valeurs par les threads.
Je sais que sinon je pourrais déclarer une fonction qui étends la classe Thread, à laquelle je passerai les bornes de traitement (les deux moitiés de mon image) et qu'il me suffirait d'appeler deux fois. Mais je préférerai éviter cela.
Comment puis résoudre ce problème ?
Merci par avance
Partager