PDA

View Full Version : [JAVA] Problema thread e ritorno comando


Napalm
14-02-2008, 16:09
Spiego la situazione:

io dal main invio X cmd ad un relè, prima di inviare i cmd istanzio un thread che si mette in lettura aspettando che il relè invii risposte. Ad ogni cmd che io invio (attenzione, non li invio in un thread) il relè risponde ma non risponde all'invio del cmd, in sostanza il cmd inviato non ritorna nulla ma devo mettermi io in lettura ed aspettare.
Ora io devo associare il cmd inviato e il risultato ricevuto ma non essendoci legame fra invio e ricezione come posso fare?
Grazie

NapalM

banryu79
15-02-2008, 08:35
Potresti fare così:
- crei una queue "Commands" che ti farà da buffer per collezionare i cmd inviati;
- ogni volta che un cmd viene istanziato e inviato lo metti in una queue (coda);
- il tuo thread che si mette in lettura legge i cmd dalla queue.

analogalmente

- crei una queue "Results" che ti farà da buffer per collezionare i risultati ricevuti;
- ogni volta che prelevi un cmd dalla "Commands" e lo esegui, istanzi un oggetto che ne rappresenta il risultato e lo metti nella queue "Results";
- avrai un altro thread in lettura: questa volta legge dalla queue "Results".

Non so se questa sia una buona idea o meno.

Napalm
15-02-2008, 08:42
Sì alla fine penso che sia quella l'idea, molto simile alla sincronizzazione fra thread.
Il cavolo è che le librerie non sono state create per avere un ritorno... vabbeh... provo a mettere giù un schema simile al tuo spunto.
Grazie :)

NapalM

lovaz
15-02-2008, 09:19
Leggi qua:

http://java.sun.com/javase/6/docs/api/java/util/concurrent/Future.html