Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    problema di design con thread

    Ciao,

    vorrei un consiglio su un problema di design molto astratto.

    Diciamo che ho un interfaccia utente in Swing in cui l'utente puo' creare dei diagrammi.
    crea i nodi del diagramma cliccando una volta su una zona vuota dell'area di disegno e crea
    gli archi cliccando su un nodo e trascinando il mouse fino ad un altro nodo. Come la gran parte dei diagrammi insomma.

    adesso, ogni volta che l'utente crea un elemento del diagramma, viene inviato un messaggio ad un server. La mia domanda e' : come gestire la parte relativa alla rete ?

    le soluzioni che mi vengoo in mente sono :

    - con un thread sempre attivo che si scambia dei messaggi (in aree di memoria condivisa) con l' Event Dispatching Thread
    - creare uno SwingWorkerThread ogni volta che devo comunicare con il server (questa sembra un po dispendiosa in termini di prestazioni, ma forse se lo scambio messaggi avviene usando http che crea una connessione per ogni sessione, cio' ha piu' senso )
    - implementare un thread sempre attivo con uno swing working thread

    so che la domanda e' alquanto generica ma il fatto e' che vorrei qualche consiglio
    su come realizzare questo sistema a livello di design.

    grazie 1000
    MB

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: problema di design con thread

    Originariamente inviato da Mr.Bloom
    le soluzioni che mi vengoo in mente sono :

    - con un thread sempre attivo che si scambia dei messaggi (in aree di memoria condivisa) con l' Event Dispatching Thread
    - creare uno SwingWorkerThread ogni volta che devo comunicare con il server (questa sembra un po dispendiosa in termini di prestazioni, ma forse se lo scambio messaggi avviene usando http che crea una connessione per ogni sessione, cio' ha piu' senso )
    - implementare un thread sempre attivo con uno swing working thread

    so che la domanda e' alquanto generica ma il fatto e' che vorrei qualche consiglio
    su come realizzare questo sistema a livello di design.
    Direi (perlomeno è quello che farei io) un thread a parte (proprio thread "puro", non un Swing "worker") che è sempre attivo. Se il protocollo di comunicazione è il classico "domanda/risposta" (il client fa una domanda, attende e riceve la risposta dal server) è più che sufficiente.

    Si dovrebbe però usare una "coda" di messaggi, sincronizzata e possibilmente bloccante. Il thread è sempre in loop continuo "ricevo un messaggio dalla coda (se non c'è, il thread va in wait, questo è il "bloccante") / poi invio / poi ricevo".
    Da altre parti si può invocare un metodo che inserisce nella coda e in modo "sincronizzato" un messaggio. Quando il thread ha ricevuto una risposta dal server, può "postare" la risposta invocando un metodo su un tuo oggetto (che magari implementa una interfaccia) eventualmente già nel contesto del EDT (ma questo potresti farlo poi tu a "monte" o a seconda di cosa devi fare).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.