Autore Topic: Metodo per comunicazione fra thread  (Letto 1999 volte)

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Metodo per comunicazione fra thread
« il: 26 Luglio 2011, 23:34:09 »
Ciao a tutti,
mi chiedevo se esiste un modo per far comunicare un thread "figlio" con un thread "padre" in maniera asincrona..cioè senza che il "padre" abbia dei punti precisi in cui aspettare risposte dai figli...

(spero di essere stato chiaro, eventualmente dettaglierò meglio il problema..)
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re: Metodo per comunicazione fra thread
« Risposta #1 il: 27 Luglio 2011, 00:48:17 »
Uhmm...message queue....
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re: Metodo per comunicazione fra thread
« Risposta #2 il: 27 Luglio 2011, 07:55:38 »
Sì. O variabili condivise. Entrambe le tecniche le uso in Python.

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re: Metodo per comunicazione fra thread
« Risposta #3 il: 27 Luglio 2011, 09:07:21 »
Citazione da: "cdimauro"
Sì. O variabili condivise. Entrambe le tecniche le uso in Python.

Allora, ad occhio e croce il problema è un altro: il thread padre deve attendere non solo su un messaggio da parte dei figli, ma anche su un socket.
Solo che l'attesa sul socket viene fatta c0n una chiamata bloccante che , mi impedirebbe di leggere gli eventuali msg sulla coda
(ripeto, la sto "sparando" qui aver riflettuto molto)

//pseudocodice
while (true)
{
 wait (socket | message_queue);
}

Se scrivo in quella maniera il mio codice, otterrei un blocco sull'attesa del socket e quindi non leggerebbe mai la coda messaggi...
Però forse sto dicendo cavolate, devo verificare bene...

[Edit] Ok, ho appena visto che esiste la possibilità di usare chiamate non bloccanti per i socket in C++!  8-)
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re: Metodo per comunicazione fra thread
« Risposta #4 il: 27 Luglio 2011, 14:08:55 »
Al limite potevi mettere un thread in ascolto del socket, e quando arrivava un messaggio lo inviavi a una coda comune agli altri messaggi, letta dal padre. ;)

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re: Metodo per comunicazione fra thread
« Risposta #5 il: 27 Luglio 2011, 16:55:01 »
Citazione da: "cdimauro"
Al limite potevi mettere un thread in ascolto del socket, e quando arrivava un messaggio lo inviavi a una coda comune agli altri messaggi, letta dal padre. ;)
Vero! Non ci avevo pensato! Grazie!!
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Tags: